trong MFT thì thuộc tính đó được gọi là thuộc tính thường trú. Thuộc tính thông tin chuẩn và thuộc tính chỉ mục gốc thường được định nghĩa là thuộc tính thường trú. Hình 4.20.a: Header và value của thuộc tính thường trú Mỗi thuộc tính đều bắt đầu với một header, header này chứa thông tin về thuộc tính, đó là thông tin mà NTFS dùng để quản lý thuộc tính. Header cho biết các thông tin liên quan đến giá trị của nó như là có phải là thường trú (RESIDENT) hay không, offset từ header đến giá trị của thuộc tính, độ dài (length) giá trị của thuộc tính, vv. Hình 4.20.b sau đây cho thấy thuộc tính filemane gồm có header là “RESIDENT” + Offset:8h + Length:14h và value là MYFILE.DAT. Khi giá trị của thuộc tính được lưu trữ trong record MFT thì thời gian đọc nội dung của một file của NTFS sẽ được giảm xuống, vì nó không phải tìm danh sách các cluster chứa nội dung của file dựa vào việc phân tích bảng FAT như trong các hệ thống file FAT, mà chỉ cần đọc ngay giá trị tại các cluster trên đĩa chứa nội dung của file, danh sách các cluster nay được ghi ở phần giá trị của thuộc tính. Thuộc tính cho các thư mục nhỏ cũng giống như thuộc tính của các file nhỏ, nó có thể thường trú trong MFT. Hình sau đây là một record MFT cho thư mục nhỏ: Hình 4.20.b: Một record MFT cho thư mục nhỏ Trong đó thuộc tính Index root chứa một chỉ mục của các tham chiếu đến các file và các thư mục con trong thư mục. Trong thực tế nội dung của một thư mục, gồm các file và các thư mục con trong nó, không thể nén thành một record MFT có kích thước cố định 1MB. Nếu một thuộc tính đặc biệt, thuộc tính dữ liệu của file chẳng hạn, là quá lớn để chứa Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m hết trong một record MFT thì NTFS sẽ cấp phát các cluster riêng cho dữ liệu của thuộc tính từ MFT. Vùng này được gọi là Run (hay là phạm vi). Nếu giá trị của thuộc tính sau đó phát triển, nội dung của file tăng lên chẳng hạn, thì NTFS sẽ định vị một Run khác cho dữ liệu được thêm vào. Các thuộc tính mà giá trị của nó được lưu trữ trong các Run chứ không phải trong các record MFT được gọi là các thuộc tính không thường trú. Hệ thống file sẽ quyết định có hay không một thuộc tính cụ thể là thường trú hay không thường trú. Khi một thuộc tính là không thường trú thì header của nó sẽ chứa các thông tin mà NTFS cần để tìm đến giá trị của thuộc tính trên đĩa. Hình sau đây cho thấy thuộc tính dữ liệu không thường trú được lưu trữ trong 2 Run. Hình 4.20.c: Record cho một file lớn với 2 Run Trong số các thuộc tính chuẩn (standard attribute), chỉ có các thuộc tính có thể tăng lên là có thể trở thành không thường trú. Các thuộc tính thông tin chuẩn và tên file luôn luôn là thường trú. Hình 4.20.d: Record MFT cho thư mục lớn với chỉ mục filename không thường trú Một thư mục lớn có thể có các thuộc tính không thường trú. Chúng ta hãy xem hình say đây, ta thấy record MFT không đủ chỗ để lưu trữ hết Index của các file chứa trong một thư mục lớn. Một phần của Index được lưu trũ trong thuộc tính Index Root, phần còn lại được lưu trong các Run không thường trú được gọi là vùng đệm chỉ mục (Index Buffer). NTFS theo dõi các Run bằng các cặp ánh xạ VCN-to-LCN. Các LCN đánh số thứ tự của các cluster trên toàn volume từ 0 đến n. Các VCN đánh số các cluster Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m riêng cho từng file từ 0 đến m. Xem hình 4.20.e sau đây: Hình 4.20.e: Các VCN cho thuộc tính dữ liệu không thường trú Nếu file này có nhiều hơn 2 Run thì Run thứ 3 sẽ bắt đầu với VCN 8. Xem hình sau đây, header của thuộc tính dữ liệu chứa các ánh xạ VCN-to-LCN cho 2 Run ở đây, nó cho phép NTFS dễ dàng tìm đến các định vị cấp phát trên đĩa. Hình 4.20.f: Các ánh xạ VCN-to-LCN cho thuộc tính dữ liệu không thường trú. Hình 4.20.f chỉ ra các Run dữ liệu, các thuộc tính khác có thể lưu trữ trong các Run nếu record trong MFT không đủ chỗ để chứa chúng và nếu một file nào đó có quá nhiều thuộc tính dẫn đến không chứa đủ trong một record thì một record thứ 2 trong MFT được sử dụng để chứa các thuộc tính thêm vào. Trong trường hợp này một thuộc tính được gọi là danh sách thuộc tính (attribute list) sẽ được thêm vào. Thuộc tính attribute list chứa tên và mã loại cho mỗi thuộc tính của file và file tham chiếu của record MFT, là nơi thuộc tính được nạp. Thuộc tính attribute list được cung cấp cho các trường hợp: kích thước file tăng lên hoặc file bị phân mảnh, dẫn đến một record MFT đơn không thể chứa hết các ánh xạ VCN-to-LCN cần thiết để tìm tất cả các Run của nó. Tóm lại trong một record MFT có thể có các trường sau: Trường đầu tiên của một record MFT là record header, theo sau đó là Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m các cặp header và value của các thuộc tính. Record header chứa 1 mã số sử dụng để kiểm tra tính hợp lệ, số kế tiếp được cập nhật mỗi khi record được sử dụng lại cho file mới, các tham chiếu đến file, số byte hiện tại trong record được sử dụng, nhận dạng (chỉ số, dãy số liên tiếp) của record cơ sở (chỉ sử dụng cho record mở rộng), và 1 số trường khác. Sau record header là header của thuộc tính thứ nhất và giá trị của thuộc tính thứ nhất, header của thuộc tính thứ hai và giá trị của thuộc tính thứ hai, NTFS định nghĩa 13 thuộc tính có thể xuất hiện ở các record MFT. Chúng được liệt kê ở bảng sau đây. Mỗi record MFT bao gồm 1 dãy các header thuộc tính, chúng được đồng nhất với phần đầu của thuộc tính và cho biết độ dài và vị trí của trường giá trị cùng với trạng thái cờ và một số thông tin khác. Thông thường, giá trị thuộc tính nằm ngay sau các header của chúng, nhưng nếu giá trị này quá dài để đặt trong 1 record MFT, thì chúng được đặt vào 1 block đĩa tách rời. Thuộc tính như vậy được gọi là thuộc tính không thường trú. Một vài thuộc tính như là tên, có thể được lặp lại, nhưng tất cả các thuộc tính phải được đặt trong 1 hàng cố định trong recorrd MFT. Các header cho thuộc tính thường trú có độ dài 24 byte; đối với những thuộc tính không lưu trú là dài hơn vì chúng lưu thêm những thông tin để tìm thuộc tính trên đĩa. Thuộc tính Mô tả Standard information Các bítcờ, timestamp, File name Tên file trong Unicode: có thể lặp lại đối với tên DOS Security descriptor Đã lỗi thời. Thông tin bảo mật trong $extend$Secure Attribute list Vị trí của các MFT record thêm vào nếu cần Object ID 64-bit, file được nhận biết là duy nhất trên volume Reparse point Dùng cho các liên kết tăng dần và tượng trưng Volume name Tên của volume này (chỉ sử dụng trong $Volume) Volume information Phiên bản của Volume (chỉ sử dụng trong $Volume) Index root Được sử dụng cho các thư mục Index allocation Được sử dụng cho các thư mục rất lớn Bitmap Được sử dụng cho các thư mục rất lớn Logged utility stream Điều khiển kết nối đến $LogFile Data Dữ liệu luồng; có thể lặp lại nhiều lần Bảng 4.7: Các thuộc tính sử dụng trong record MFT Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Trường thông tin chuẩn (Standard Information) của file bao gồm: thông tin bảo mật, timestamp, các liên kết cố định, bít chỉ đọc và bítlưu trữ, vv. Nó là trường có kích thước cố định và luôn hiện hữu. Trường tên file (File Name) là một chuỗi mã Unicode có độ dài thay đổi được. Để tạo các file với các tên không phải là tên MS-DOS gần với các ứng dụng 16-bítcũ, các file cũng có thể có tên 8+3 của MS-DOS. Nếu tên file thực sự tuân theo quy tắc đặt tên 8+3 của MS-DOS, thì tên file MS_DOS phụ sẽ không được sử dụng. Trong NT 4.0, thông tin bảo mật (Security) có thể đưa vào một thuộc tính nhưng trong Windows 2000 tất cả được đưa vào một file riêng, vì thế nhiều file có thể chia sẻ một phần bảo mật. Danh sách thuộc tính (Attribute List) là cần thiết nếu thuộc tính không đặt trong record MFT. Thuộc tính này là để tìm ra các record mở rộng. Mỗi mục vào của dãy thuộc tính chứa một chỉ số 48-bíttrong MFT gọi đó là record mở rộng và một dãy số 16-bítcho phép kiểm tra sự phù hợp của record mở rộng và record cơ sở. Thuộc tính định danh đối tượng ID (Object Identifer) của đối tượng làm cho tên file là duy nhất. Trường peparse point gọi là các thủ tục phân tách tên file để thực hiện một thao tác đặc biệt nào đó. Kỹ thuật này được sử dụng trong cài đặt và liên kết biểu tượng. Hai thuộc tính volume (Volume Name và Volume Information) chỉ sử dụng để xác định volume. Ba thuộc tính tiếp theo (Index Root, Index Allocation và Bitmap) được sử dụng cho việc cài đặt các thư mục. Thuộc tính Logged utility stream được sử dụng bởi hệ thống file mã hoá. Cuối cùng, là thuộc tính dữ liệu. Một dãy tên file nằm trong thuộc tính heard. Tiếp theo header là một danh sách các địa chỉ đĩa mà chúng được gọi là block chứa file, hay chỉ cho các file vài trăm byte của riêng nó. Trong thực tế, đặt dữ liệu file vào record MFT được gọi là file trực tiếp. Phần lớn thì dữ liệu không đặt ở MFT record, vì vậy thuộc tính này thường không thường trú. IV.9.3. Quản lý danh sách các block chứa File trên đĩa 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 Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m 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 64 80 2 3 4 20-23 Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m 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 Một vấn đề nảy sinh là nếu cần quá nhiều record MFT thì sẽ không đủ chổ Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m 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. Một số kỹ thuật được hỗ trợ bởi hệ thống file NTFS Lập bảng chỉ mục Trong hệ thống file NTFS, một danh mục file là một chỉ mục đơn của các tên file, đó là một tập các tên file (cùng với các tham chiếu file của chúng) được tổ chức theo một cách đặc biệt để tăng tốc độ truy xuất file. Để tạo một danh mục, NTFS lập chỉ mục cho thuộc tính filename của các file trong thư mục. Một record cho thư mục gốc của volume được đưa ra ở hình 4.23 sau đây. Hình 4.23: Chỉ mục tên file cho thư mục gốc của volume Một emtry MFT cho một thư mục chứa trong thuộc tính index root của nó một danh sách được sắp xếp của các file trong thư mục. Đối với các thư mục lớn, tên file thực tế được lưu trữ trong các vùng đệm chỉ mục (index buffer) có kích thước cố định là 4Kb, index buffer này chứa và tổ chức các tên file. Index buffer cài đặt cấu trúc dữ liệu cây b+, nhờ đó mà cực tiểu được số lần truy cập trực tiếp đĩa cần thiết để tìm đến một file, đặc biệt là đối với các thư mục lớn. Thuộc tính Index root chứa cấp đầu tiên của cây b+ và trỏ đến Index buffer chứa cấp tiếp theo. Hình 4.23 trình bày các tên file trong thuộc tính index root và index buffer (file5), nhưng mỗi entry trong index cũng chứa tham chiếu file trong MFT, nơi chứa các thông tin mô tả, kích thước, timestamp của file. NTFS nhân đôi thông tin về timestamp và kích thước file từ record MFT của file. Kỹ thuật này được sử dụng bởi FAT và NFTS, yêu cầu được cập nhật thông tin để ghi vào cả hai nơi. Do đó, nó tăng tốc độ đáng kể cho các thao tác duyệt thư mục vì nó cho phép hệ thống file hiển thị timestamp và kích thước file của mỗi file mà không cần mở mỗi file trong Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m thư mục. Thuộc tính index allocation ánh xạ các VCN của cả Run index buffer mà nó chỉ báo nơi index buffer thường trú trên đĩa. Thuộc tính bitmap theo dõi các VCN trong index buffer là đang được sử dụng hay đang rỗi. Hình trên cho thấy một entry file trên VCN, nhưng các entry filename thực tế được đóng gói trong mỗi cluster. Một index buffer 4Kb có thể chứa từ 20 đến 30 entry filename. Cấu trúc dữ liệu cây b+ là một kiểu cây cân bằng, nó là ý tưởng cho việc tổ chức sắp xếp dữ liệu được lưu trữ trên đĩa bởi vì nó cực tiểu số lần truy cập đĩa cần thiết để tìm đến một entry. Trong MFT, một thuộc tính index root của thư mục chứa nhiều filename mà nó đóng vai trò như là các chỉ mục vào cấp thư hai của cây b+. Mỗi filename trong thuộc tính index root có một con trỏ tùy chọn được kết hợp với nó để chỉ đến index buffer. Index buffer mà nó chỉ đến chứa các filename với giá trị (về mặt tự điển) ít hơn sở hữu của nó. Trong hình trên, file4 là entry cấp đầu tiên trong cây b+, nó chỉ đến một index buffer chứa các filename mà ít hơn chính nó, đó là cá filename file0, file1, và file3. Lưu trữ tên file trong cây b+ mang lại nhiều thuận lợi. Việc tìm kiếm thư mục sẽ nhanh hơn vì filename được lưu trữ theo thứ tự được sắp xếp. Và khi một phần mềm cấp cao đếm các file trong thư mục, NTFS sẽ trả lại tên file vừa được sắp xếp. NTFS cũng cung cấp sự hỗ trợ cho chỉ mục dữ liệu bên cạnh filename. Một file có thể có một đối tượng ID được gán cho nó, ID của file được lưu trữ trong thuộc tính $OBJECT_ID của file. NTFS cung cấp một API cho phép các ứng dụng mở file bằng các đối tượng ID của file thay vì dùng tên file của nó. Do đó, NTFS phải tạo ra một tiến trình để chuyển đổi một đối tượng ID thành số file của file một cách hiệu quả. Để thực hiện được điều này NTFS lưu trữ một ánh xạ của tất cả các đối tượng ID của volume thành số tham chiếu file của chúng trong một file metadata \$Extend\$ObjID. NTFS sắp xếp các đối tượng ID trong file nói trên như chỉ mục filename mà ta đã dề cập ở trên. Chỉ mục đối tượng ID được lưu trữ như là cây b+. Ánh xạ bad-cluster Các thành phần quả lý đĩa logic trong windows 2000 như FDISK (đối với basic disk) và LDM (đối với các dynamics disk), có thể khôi phục dữ liệu tại các bad- sector trên các đĩa có khả năng chịu lỗi (fault tolearant disk), với điều kiện đĩa phải sử dụng chuẩn SCSI và còn các sector trống trên đĩa. Các volume chịu lỗi là các volume thuộc loại Mirrored và RAD-5. Hệ thống file FAT và thành phần quản lý đĩa logic của nó không thể đọc dữ liệu từ các bad-sector cũng như không thể phát sinh thông báo khi ứng dụng đọc dữ liệu tại bad-sector. NTFS thay thế một cách tự động các cluster chứa bad-sector và theo dõi bad- Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m cluster vì thế nó không được sử dụng lại sau này. Khi bộ phận quản lý volume trả về cảnh báo bad-sector hoặc khi bộ điều khiển đĩa cứng trả về lỗi bad-sector, NTFS sẽ tìm một cluster mới để thay thế cluster chứa bad-sector. NTFS copy dữ liệu mà bộ phận quản lý volume khôi phục được vào cluster mới để thiết lập lại sự dư thừa dữ liệu. Hình 4.24.a cho thấy một record MFT cho một file của người sử dụng với một bad-cluster trong một trong các Run dữ liệu của nó. Khi nó nhận được lỗi bad- sector, NTFS gán lại cluster chứa bad-sector vào tập bad-cluster của nó. Điều này ngăn cản hệ thóng cấp bad-cluster cho các file khác. Sau đó NTFS tìm một cluster mới cho file và thay đổi ánh xạ VCN-to-LCN để chỉ đến cluster mới. Hình 4.24.a: Record MFT cho một File có bad-cluster Ánh xạ lại bad-cluster trong hình sau. Cluster 1357 có chứa bad-sector, được thay thế bằng cluster mới 1049. Nếu bad-sector ở trên volume redundant, thì bộ phận quản lý volume sẽ khôi phục dữ liệu và thay thế sector nếu có thể. Nếu không thể thay thế sector thì nó sẽ trả về một cảnh báo cho NTFS và NTFS sẽ thay thế cluster chứa bad-sector đó. Hình 4.24.b1: Ánh xạ lại bad-cluster Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m . phục được vào cluster mới để thiết lập lại sự dư thừa dữ liệu. Hình 4. 24. a cho thấy một record MFT cho một file của người sử dụng với một bad-cluster trong một trong các Run dữ liệu của nó chuẩn SCSI và còn các sector trống trên đĩa. Các volume chịu lỗi là các volume thuộc loại Mirrored và RAD-5. Hệ thống file FAT và thành phần quản lý đĩa logic của nó không thể đọc dữ liệu từ các. block chứa file, hay chỉ cho các file vài trăm byte của riêng nó. Trong thực tế, đặt dữ liệu file vào record MFT được gọi là file trực tiếp. Phần lớn thì dữ liệu không đặt ở MFT record, vì vậy