← กลับไปยังบทความทั้งหมด

การออกแบบระบบไฟล์ FAT โครงสร้างและการทำงานพื้นฐาน

สรุปใจความสำคัญ

  • ระบบไฟล์ FAT ถูกออกแบบมาเพื่อใช้กับ MS-DOS และ Windows 9x และยังใช้ในอุปกรณ์พกพาในปัจจุบัน
  • โครงสร้างของ FAT32 มักจะมี Reserved Sectors จำนวน 32 เซกเตอร์ รวมถึงส่วนสำรองของ Boot Sector
  • ระบบ FAT ใช้รูปแบบการจัดเก็บข้อมูลแบบ little-endian ในส่วนหัวและตาราง FAT

ระบบไฟล์ FAT เป็นระบบการจัดการไฟล์ที่ถูกนำมาใช้ในระบบปฏิบัติการ MS-DOS และตระกูล Windows 9x ซึ่งแม้ว่าเวลาจะผ่านไปนาน แต่ปัจจุบันยังคงมีการใช้งานอย่างแพร่หลายในอุปกรณ์พกพาและระบบฝังตัว (Embedded Systems) ทำให้ FAT เป็นระบบไฟล์ที่เหมาะสมอย่างยิ่งสำหรับการแลกเปลี่ยนข้อมูลระหว่างคอมพิวเตอร์และอุปกรณ์ประเภทต่างๆ ตั้งแต่ปี 1981 จนถึงปัจจุบัน

โครงสร้างของระบบไฟล์ FAT

ระบบไฟล์ FAT ประกอบด้วย 4 ส่วนหลัก โดยมีข้อมูลสำคัญจาก Boot Sector ที่สามารถเข้าถึงได้ผ่านโครงสร้างของระบบปฏิบัติการที่เรียกว่า Drive Parameter Block (DPB) ใน DOS และ OS/2

ส่วนของ Reserved Sectors

ในระบบ FAT32 จำนวน Reserved Sectors มักจะมีค่าเท่ากับ 32 เซกเตอร์ ซึ่งรวมถึง:

  • File System Information Sector: อยู่ที่เซกเตอร์ตรรกะที่ 1
  • Backup Boot Sector: อยู่ที่เซกเตอร์ตรรกะที่ 6

สำหรับรหัส Boot Sector ของ Microsoft นั้นมีการพัฒนาให้ครอบคลุมเซกเตอร์ตรรกะที่ 0 และ 2 โดยที่เซกเตอร์ 0 จะทำงานร่วมกับรูทีนย่อยในเซกเตอร์ 2 นอกจากนี้ พื้นที่ Backup Boot Sector ยังประกอบด้วยเซกเตอร์ตรรกะที่ 6, 7 และ 8 และในบางกรณี Microsoft อาจใช้เซกเตอร์ที่ 12 สำหรับ Extended Boot Loader

รูปแบบการจัดเก็บข้อมูล

ระบบ FAT ใช้รูปแบบ little-endian สำหรับข้อมูลทั้งหมดในส่วนหัว (Header) และในตาราง FAT (ยกเว้นบางกรณีใน Atari ST) นอกจากนี้ ระบบยังอนุญาตให้มีการจัดสรรเซกเตอร์ FAT มากกว่าที่จำเป็นสำหรับจำนวนคลัสเตอร์ ซึ่งอาจส่งผลให้มีเซกเตอร์ที่ไม่ได้ใช้งานอยู่ที่ส่วนท้ายของวอลลุ่มหรือพาร์ทิชัน

รายละเอียดของ Boot Sector (VBR)

ในอุปกรณ์จัดเก็บข้อมูลที่ไม่มีการแบ่งพาร์ทิชัน เช่น แผ่นดิสก์เก็ต (Floppy Disks) Boot Sector จะอยู่ที่เซกเตอร์ตรรกะที่ 0 แต่สำหรับอุปกรณ์ที่มีการแบ่งพาร์ทิชัน เช่น ฮาร์ดดิสก์ Boot Sector จะเป็นเซกเตอร์แรกของพาร์ทิชันนั้นๆ ตามที่ระบุไว้ในตารางพาร์ทิชัน (Partition Table)

การตรวจสอบการบูต (Bootable Disks)

เพื่อให้ดิสก์สามารถบูตได้บนสถาปัตยกรรม x86 จะต้องเริ่มต้นด้วยคำสั่ง jump สั้นๆ ตามด้วย NOP หรือ near jump ซึ่งเป็นตัวบ่งชี้ให้ DOS 3.3 ขึ้นไปทราบว่ามี BPB (Bios Parameter Block) อยู่ในระบบ

ความสำคัญของ OEM Label

ฟิลด์ OEM Label ถูกใช้เพื่อระบุผู้ผลิตหรือระบบที่ฟอร์แมตดิสก์ เช่น "IBM 3.3", "MSDOS5.0" หรือ "MSWIN4.1" การตั้งค่าค่านี้เป็นค่าที่ผิดพลาดอาจทำให้ MS-DOS, PC DOS หรือ OS/2 ไม่สามารถจดจำวอลลุ่มได้อย่างถูกต้อง และอาจนำไปสู่การสูญเสียข้อมูลได้ ในบางกรณี Windows 9x อาจเขียนทับ OEM Label ด้วยลายเซ็น "?????IHC" ซึ่งอาจส่งผลต่อการอ่านข้อมูลในระบบปฏิบัติการรุ่นเก่า

คำถามที่พบบ่อย

ระบบไฟล์ FAT คืออะไร?

FAT คือระบบการจัดการไฟล์ (File Allocation Table) ที่ใช้ใน MS-DOS และ Windows 9x และยังคงเป็นมาตรฐานสำหรับการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ต่างๆ ในปัจจุบัน

Boot Sector ในระบบ FAT มีหน้าที่อะไร?

Boot Sector หรือ VBR ทำหน้าที่เก็บข้อมูลพื้นฐานของพาร์ทิชันและรหัสสำหรับเริ่มต้นการทำงานของระบบปฏิบัติการ (Bootstrap Loader)

ทำไม OEM Label ถึงมีความสำคัญ?

OEM Label ใช้ระบุรูปแบบการฟอร์แมตและช่วยให้ระบบปฏิบัติการอย่าง MS-DOS หรือ OS/2 ตรวจสอบความถูกต้องของวอลลุ่มเพื่อป้องกันการเขียนข้อมูลผิดพลาด