มีรายงานว่าเมื่อทำ Windows Backup ไปยัง NAS device (backup ไป network share) ที่รัน Samba ล้มเหลวพร้อมข้อความ — The backup failed, The version does not support this version of the file format (0xC03A0005) บทความนี้จะอธิบายเมื่อไหร่เกิด สาเหตุ และวิธีแก้ไข

The version does not support this version of the file format, 0xC03A0005
ปัญหาเกิดจากความขัดแย้งกับ ไฟล์ VHD ที่ Windows Backup สร้างและ mount ระหว่างกระบวนการ มี VHD 3 ประเภท:
- Fixed
- Expandable (Sparse)
- Differencing
หากไฟล์ VHD เป็น sparse file ที่ native VHD driver ไม่รองรับ การ mount จะล้มเหลวและได้ข้อผิดพลาดนี้ ตัวอย่าง VHD sparse คือไฟล์ที่ขยายตามขนาด backup
ปัญหาเกิดเฉพาะ File Level backup (ไฟล์/โฟลเดอร์ในโวล्यूम) ไม่ใช่ block level backup เพราะ VHD ไม่ถูก mount แต่ใน File Level Backup VHD จะถูก mount ซึ่ง Windows Backup ไม่รองรับการ mount sparse files
วิธีแก้ไขที่เป็นไปได้เพียงอย่างเดียว: ใช้ตัวเลือก Strict Allocate ใน smb.conf
Login เข้า SMB ด้วย SSH เปิดไฟล์ config ด้วย VI editor ที่ /etc/samba/smb.conf หากไม่มีตัวเลือก ให้เพิ่ม strict allocate = yes เอง จะทำให้ไม่มี sparse file ถูกสร้าง
ตัวเลือกนี้ทำอะไร?
ตามเว็บไซต์อย่างเป็นทางการ:
เมื่อตั้งค่าเป็น yes เซิร์ฟเวอร์จะเปลี่ยนจากพฤติกรรม UNIX ที่ไม่ commit บล็อกจัดเก็บจริงเมื่อไฟล์ขยาย เป็นพฤติกรรม Windows ที่บังคับให้ระบบดิสก์จัดสรรบล็อกจริงเมื่อสร้างหรือขยายไฟล์เป็นขนาดที่กำหนด ในศัพท์ UNIX หมายถึง Samba จะหยุดสร้าง sparse files
สามารถทดสอบได้ว่ VHD file เป็น sparse file โดย mount เอง
เปิด Disk Management คลิก "Action" แล้ว "Attach VHD" ระบุ path ของ vhd file หากข้อผิดพลาดเหมือน backup แสดงว่าเป็นเพราะ sparse file
หวังว่าบทความนี้เข้าใจง่ายและคุณแก้ไขรหัสข้อผิดพลาด 0xC03A0005 เกี่ยวกับ Windows backup ไป NAS ได้
