Trong Windows 2000 với NTFS thì nội dung của một File cần lưu trữ trên volume cũng được chia thành các block (tương ứng với một block hay cluster trên đĩa), các block file còn được gọi là các block logic. Các block file có thể được lưu tại một hoặc nhiều đoạn block không liên tiếp nhau trên đĩa, một đoạn block bao gồm n block liên tiếp nhau (n = 2, 3, 4, ...), một đoạn block trong trường hợp này được gọi là một Run. Ví dụ file A được lưu trữ trên 7 block liên tiếp: từ block 10 đến block
16 và file B được lưu trữ trên 35 block: từ block 30 đến block 44 và từ block 41 đến block 60. Như vậy file A được lưu trữ trên một đoạn block (Run #1) còn file B được lưu trữ trên hai đoạn block (Run #1 và Run #2). Thông thường, nếu block logic đầu tiên của một file ghi ở block 20 trên đĩa thì block logic 2 được ghi vào block 21 trên đĩa và block logic thứ 3 được ghi vào block 22 trên đĩa, vv. Với cách lưu trữ này hệ điều hành có thể ghi nhiều blok logic vào các block đĩa cùng một lúc nếu có thể. Đây là một ưu điểm của Windows 2000.
Danh sách các block đĩa chứa nội dụng của một file được mô tả bởi một record trong MFT (đối với file nhỏ) hoặc bởi một dãy tuần tự các record trong MFT, có thể không liên tiếp nhau (đối với file lớn). Mỗi record MFT dùng để mô tả một dãy tuần tự các block logic kề nhau. Mỗi record MFT trong trường hợp này bắt đầu với một header lưu địa chỉ offset của block đầu tiên trong file. Tiếp đến là địa chỉ offset của block đầu tiên mà không nằm trong record. Ví dụ nếu có một file được lưu tại 2 đoạn block là: 0 – 49 và 60 – 79 thì record đầu tiên có một header của (0, 50) và sẽ cung cấp địa chỉ đĩa cho 50 block này và record 2 sẽ có một header của (60, 80) và sẽ cung cấp địa chỉ đĩa cho 20 block đó. Tiếp sau mỗi record header là một hay nhiều cặp, mỗi cặp lưu một địa chỉ của block đĩa bắt đầu đoạn block và số block có trong đoạn (độ dài của một Run).
Hình sau đây là một record MFT chứa thông tin của một file.
Hình 4.21 là một record MFT cho một file ngắn (ngắn ở đây có nghĩa là tất cả các thông tin về các block của file chứa vừa trong một record MFT). File này gồm 9 block, nó chứa 3 Run: Run #1 gồm 4 block từ 20 đến 23, Run #2 gồm 2 block từ 64 đến 65 và Run #3 gồm 3 block từ 80 đến 82. Mỗi Run được ghi vào record MFT theo từng cặp (địa chỉ block đĩa, tổng số block).
Unused
Hình 4.21: Một record MFT cho 1 file có 3 run, gồm 9 block Standa rd Infor Record Header Stand ard Infor Header File Name File Name Header Data Header
Header Run #1 Run#3
Infor about data blocks (thông tin về các block dữ liệu)
Run#2
64-65 80-82 Các block đĩa
0 9 20 4 64 2 80 3
Cần chú ý rằng không có giới hạn trên cho kích thước của các file được trình bày theo cách này. Trong trường hợp thiếu địa chỉ nén, mỗi cặp cần có 2 số 64-bít trong tổng số 16 byte. Tuy nhiên một cặp có thể tượng trưng cho một triệu hoặc hơn nữa các block đĩa liên tiếp. Trên thực tế, một file 20 Mb bao gồm 20 Run của 1 triệu block 1 Kb, mỗi Run được đặt trong một record MFT.
Khi lưu trữ một file có kích thước lớn (số lượng block lớn) hoặc thông tin của file có sự phân mảnh lớn thì các lưu trữ các block của nó trong MFT được trình bày như trong hình sau:
Trong hình sau ta thấy record cơ sở của file nằm ở record MFT 102. Nó có quá nhiều Run trên một record MFT, vì thế hệ thống cần phải có nhiều record mở rộng, ở đây là thêm 2 record mở rộng, và đặt chúng vào record cơ sở. Phần còn lại của record cơ sở được sử dụng cho k Run đầu tiên.
Khi tất cả các byte trong record 102 đã được dùng hết, thì các run được tích lũy sẽ tiếp tục với record MFT 105. Khi nhiều run được sắp xếp vào hết trong record này hay khi record này đã đầy thì phần run còn lại sẽ vào record MFT 108. Theo cách này, nhiều record MFT có thể được dùng để quản lý các file lớn khác .
10 9 … 10 8 Run n+1 ... Run# m Record mở rộng 2 10 7 10 6 10 5 Run #k+1 ... Run #n Record mở rộng 1 10 4 10 3 10 2 MFT 105 MFT10 8 Run#1
... Run #k Record cơ sở
10 1
Hình 4.22: Các record MFT của một file lớn
trong MFT cơ sở để liệt kê tất cả các chỉ mục của chúng. Có một giải pháp cho vấn đề này là thực hiên không lưu danh sách phần đuôi mở rộng của các record MFT (chẳng hạn, được lưu trử trên đĩa thay vì trên bản ghi MFT cơ sở). Lúc đó, kích thước của file có thể phát triển lớn đến một mức cần thiết.