Đĩa cứng - 4 - FAT32

(Tiếp theo của đĩa cứng_3)

Hệ thống FAT32

Như đã trình bày ở phần trước, đĩa cứng luôn bắt đầu bằng MBR, tiếp sau đó là các partition.
MBR
partition
partition
….
partition
Có hai loại partition là primary partition và extended partition. Extended partition có thể được chia tiếp thành các logical partition. Như vậy, ổ đĩa (C:\, D:\, E:\...v.v) có thể là primary partition hoặc logical partition. Xem hình vẽ minh họa bên dưới.

Mỗi một ổ đĩa logic sẽ sử dụng một hệ thống quản lý tập tin (file system) duy nhất để quản lý các tập tin. Ví dụ ổ đĩa C:\ là FAT32, D:\ là NTFS, E:\ là NTFS.
Phần này tập trung trình bày về hệ thống FAT (cụ thể là FAT32).
FAT (File Allocation Table) là hệ thống quản lý tập tin được phát triển bởi Microsoft vào cuối những năm 1970 – đầu những năm 1980. Hệ điều hành MS-DOS của Microsoft là hệ điều hành đầu tiên sử dụng hệ thống FAT.
Theo thời gian, hệ thống quản lý tập tin này luôn được nâng cấp để hỗ trợ nhiều loại đĩa có dung lượng lớn hơn. Ví dụ: đĩa cứng, đĩa USB, thẻ nhớ…v.v.
Tất cả các hệ điều hành Windows và hầu hết các hệ điều hành Unix đều hỗ trợ hệ thống FAT.
Hệ thống FAT có ba loại: FAT12, FAT16 và FAT32. Sự khác biệt chủ yếu của ba loại này là kích thước của mỗi entry. (entry là một đơn vị lưu trữ, được sử dụng để lưu địa chỉ của các cluster). Mỗi entry trong hệ thống FAT12 là 12 bit, FAT16 là 16 bit và FAT32 là 32 bit.
Cấu trúc của một ổ đĩa logic định dạng theo hệ thống FAT gồm ba vùng:

-          Vùng đầu tiên là Reserved, chứa các thông tin mô tả của hệ thống quản lý tập tin. Vùng Reserved bắt đầu từ sector 0, kích thước của vùng này được lưu trong Boot Sector của ổ đĩa logic (trong VBR). Với FAT12, FAT16 vùng này thường là một sector, với FAT32 gồm nhiều sector.
-          Vùng FAT: chứa hai FAT Structure, vùng này bắt đầu ngay sau vùng Reserved, gồm: một FAT Structure chính, một FAT Structure dự phòng. Kích thước của vùng FAT được tính dựa vào số lượng FAT Structure nhân với kích thước của mỗi FAT Structure, hai thông tin này được lưu trong Boot Sector.
-          Vùng Data chứa các cluster lưu trữ nội dung của tập tin. Vùng này bắt đầu ngay sau vùng FAT. Kích thước được tính bằng tổng sector của ổ đĩa logic trừ đi sector bắt đầu của vùng Data. Tổng số sector của ổ đĩa được lưu trong Boot Sector.
Trong vùng Data, có một cấu trúc dữ liệu quan trọng là Root Directory. Root Directory là siêu dữ liệu của tập tin (file metadata).
Trong hệ thống FAT, mỗi thư mục hoặc tập tin (gọi chung là tập tin) sẽ có một cấu trúc dữ liệu để mô tả nó, gọi là Directory Entry. Directory Entry chứa tên tập tin, kích thước, địa chỉ bắt đầu của vùng nội dung và một số thông tin khác.
Đối với FAT12/FAT16, Root Directory luôn nằm ở phần đầu tiên của vùng Data, có kích thước cố định, kích thước này được lưu trong Boot Sector. Xem hình minh họa dưới đây.

Với FAT32, vị trí bắt đầu của Root Directory không cố định, nó có thể nằm ở vị trí bất kì trong vùng Data, kích thước của Root Directory cũng không cố định, nó có thể tăng lên tùy ý. Địa chỉ bắt đầu của Root Directory được lưu trong Boot Sector, kích thước của Root Directory được tính dựa vào FAT Structure. Xem hình minh họa dưới đây.

-----------------------------------
Cập nhật: 2013/4/1

------------------------------------

Tham khảo

[3] FAT32_Hardware White Paper