NTFS

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm

NTFS là hệ thống tập tin tiêu chuẩn của Windows NT, bao gồm cả các phiên bản sau này của Windows như Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, và Windows 7.

NTFS thay thế hệ thống tập tin FAT vốn là hệ thống tập tin ưa thích cho các hệ điều hành Windows của Microsoft. NTFS có nhiều cải tiến hơn FAT và HPFS (High Performance File System - Hệ thống tập tin hiệu năng cao) như hỗ trợ cải tiến cho các siêu dữ liệu và sử dụng các cấu trúc dữ liệu tiên tiến để cải thiện hiệu suất, độ tin cậy, và sử dụng không gian ổ đĩa, cộng thêm phần mở rộng như các danh sách kiểm soát truy cập bảo mật (access control list-ACL) và bản ghi hệ thống tập tin.

NTFS là viết tắt của ¨New Technology File System¨ (Hệ thống tập tin công nghệ mới).

Lịch sử[sửa | sửa mã nguồn]

Vào giữa thập niên 1980, MicrosoftIBM thành lập một dự án hợp tác để ra hệ điều hành đồ họa thế hệ tiếp theo. Kết quả của dự án là OS/2, nhưng cuối cùng Microsoft và IBM bất đồng về nhiều vấn đề quan trọng và sau đó đã chia rẽ. OS/2 tiếp tục là một dự án của IBM. Còn Microsoft bắt đầu phát triển hệ điều hành Windows NT. Hệ thống tập tin HPFS của OS/2 có một số tính năng mới quan trọng. Khi Microsoft tạo ra hệ điều hành mới, họ đã vay mượn nhiều khái niệm cho NTFS. Có lẽ do có chung nhiều khái niệm nên HPFS và NTFS có cùng mã phân loại nhận dạng phân vùng ổ đĩa (07). Có cùng một số nhận dạng là không bình thường khi có tới hàng chục mã có sẵn, và các hệ thống tập tin ổ đĩa lớn khác có mã của riêng chúng. FAT có hơn 9 mã (mỗi mã cho FAT12, FAT16, FAT32, vân vân). Các thuật toán trong đó xác định hệ thống tập tin trong một kiểu phân vùng 07 phải thực hiện kiểm tra bổ sung. Đây cũng rõ ràng rằng NTFS cũng dùng chung thiết kế kiến trúc cho Files-11 được sử dụng bởi VMS. Điều này hầu như không đáng ngạc nhiên khi Dave Cutler là người đứng đầu của cả VMS và Windows NT.

Các phiên bản[sửa | sửa mã nguồn]

NTFS có 5 phiên bản được phát hành:

  • Phiên bản 1.0 (v1.0) với NT 3.1, phát hành giữa năm 1993
  • Phiên bản 1.1 (v1.1) với NT 3.5, phát hành cuối năm 1994
  • Phiên bản 1.2 (v1.2) với NT 3.51 (giữa năm 1995) và NT 4 (giữa năm 1996) (đôi khi còn gọi là "NTFS 4.0", vì phiên bản OS là 4.0)
  • Phiên bản 3.0 (v3.0) của Windows 2000 ("NTFS V5.0")
  • Phiên bản 3.1 (v3.1) của Windows XP (mùa thu 2001; "NTFS V5.1"), Windows Server 2003 (mùa xuân 2003; đôi khi còn gọi là "NTFS V5.2"), Windows Vista (giữa năm 2005) (đôi khi còn gọi là "NTFS V6.0") và Windows Server 2008

V1.0 và V1.1 (và các phiên bản mới hơn) không tương thích: vì các đĩa được ghi bằng NT 3.5x không thể đọc được bằng NT 3.1 cho đến khi một bản cập nhật trên đĩa CD có NT 3.5x được áp dụng cho NT 3.1, bản cập nhật cũng thêm vài hỗ trợ tên tập tin dài FAT. V1.2 hỗ trợ các tập tin nén, các dòng dữ liệu được đặt tên, bảo mật dựa trên ACL, vân vân. V3.0 thêm vào cấp hạn ngạch cho đĩa, mã hóa, tập tin rải, các điểm phân tích kiểm tra, bản ghi số thứ tự cập nhật (USN - update sequence number), các tập tin và thư mục $Extend, và tổ chức lại ký hiệu bảo mật để nhiều tập tin sử dụng cùng thiết lập bảo mật có thể chia sẻ cùng một ký hiệu. V3.1 mở rộng danh sách Bảng tập tin gốc (MFT - Master File Table) với số ghi MFT dư (có ích cho việc khôi mục các tập tin MFT bị hư hỏng).

Windows Vista đưa vào sử dụng NTFS giao tác, các liên kết biểu tượng NTFS, phân vùng thu hẹp và chức năng tự sửa chữa, mặc dù những tính năng này dùng nhiều hơn để bổ sung chức năng của hệ điều hành hơn là cho bản thân hệ thống tập tin.

Các đặc tính[sửa | sửa mã nguồn]

NTFS v3.0 bao gồm vài đặc tính mới so với FAT, đó là: hỗ trợ tập tin rải, cấp hạn ngạch sử dụng ổ đĩa, các điểm phân tích kiểm tra, theo dõi liên kết phân phối, và mã hóa các mức tập tin, cũng còn gọi là Hệ thống tập tin mã hóa (EFS).

Bản ghi số thứ tự cập nhật (USN)[sửa | sửa mã nguồn]

Đây là một đặc tính quản lý hệ thống ghi các thay đổi của tất cả các tập tin, dòng dữ liệu và thư mục trong đĩa, cũng như các đặc tính khác của tập tin, thư mục và các thiết lập bảo mật. Đây là một chức năng quan trọng của NTFS (một tính năng mà FAT/FAT32 không có) để bảo đảm rằng các cấu trúc dữ liệu phức tạp bên trong của nó (đặc biệt là các bitmap cấp cho đĩa, hay di chuyển dữ liệu được thực hiện bởi các API phân mảnh, các sửa đổi những bản ghi MFT như di chuyển một vài biến số các đặc tính chiều dài được lưu trữ trong các bản ghi MFT và danh sách đặc tính, hay cập nhật các ký hiệu bảo mật chung, hoặc để khởi động sector và mirror cục bộ nơi thực hiện USN cuối cùng trên đĩa được lưu trữ) và các chỉ số (cho các thư mục và ký hiệu bảo mật) sẽ còn phù hợp trong mọi trường hợp hệ thống bị hư hỏng, và cho phép dễ dàng hủy các thay đổi không ràng buộc với các cấu trúc dữ liệu quan trọng đó khi ổ đĩa sẽ bị cài đặc lại. Trong các phiên bản mới của Window, bản ghi số thứ tự cập nhật đã mở rộng để truy theo trạng thái của các hoạt động giao tác khác trên các phần khác của hệ thống tập tin NTFS, chẳng hạn như các bản sao bóng VSS của các tập tin hệ thống với các ngữ nghĩa copy-on-write (Copy-on-Write (COW) cho phép tiến trình cha và con dùng chung trang trong bộ nhớ khi mới khởi tạo tiến trình con), hoặc thực hiện các Giao tác NTFS và các hệ thống tập tin phân phối.

Các liên kết cứng và viết tắt tên tập tin[sửa | sửa mã nguồn]

Ban đầu gồm hỗ trợ hệ thống con POSIX trong Windows NT, các liên kết cứng tương tự như các nút thư mục, nhưng được sử dụng cho các tập tin thay vì các thư mục. Các liên kết cứng chỉ có thể được áp dụng cho các tập tin trên cùng một ổ đĩa từ một bản ghi tên tập tin phụ được thêm vào bản ghi MFT của tập tin. Viết ngắn tên tập tin cũng được thực hiện như các bản ghi tên tập tin phụ, nó không có các danh sách thư mục riêng biệt.

Các dòng dữ liệu luân phiên (ADS)[sửa | sửa mã nguồn]

Các dòng dữ liệu luân phiên cho phép nhiều hơn một dòng dữ liệu được liên kết với một tên tập tin, sử dụng định dạng tên tập tin là "filename:streamname" (ví dụ "text.txt:extrastream). Các dòng luân phiên không được liệt kê trong Windows Explorer, và kích thước của chúng không bao gồm cả kích thước của tập tin. Chỉ có dòng chính của một tập tin được duy trì khi nó được sao chép vào một mạng chia sẻ hoặc ổ đĩa USB định dạng FAT, gắn với một e-mail, hay tải lên một website. Do đó, sử dụng các dòng luân phiên cho dữ liệu quan trọng có thể gây ra các vấn đề. Các dòng NTFS được giới thiệu trong Windows NT 3.1, để kích hoạt Các dịch vụ cho Macintosh (SFM) nhằm lưu trữ các nhánh tài nguyên Macintosh. Mặc dù các phiên bản hiện hành của Windows Server không còn gồm SFM, nhưng các sản phẩm Apple Filing Protocol (AFP) của bên thứ ba (như Group Logic's ExtremeZ-IP) vẫn sử dụng tính năng này của hệ thống tập tin. Malware được sử dụng cho các dòng dữ liệu luân phiên nhằm ẩn mã của nó; một số công cụ quét malware và các công cụ đặc biệt khác hiện nay dùng để kiểm tra các dòng luân phiên trong dữ liệu. Microsoft cung cấp một công cụ gọi là Streams cho phép người dùng xem được các dòng trên một ổ được chọn.

ADS rất nhỏ cũng được thêm vào trong chương trình Internet Explorer (và cả các trình duyệt khác hiện nay) để đánh dấu các tập tin đã được tải về từ các trang bên ngoài: chúng có thể không an toàn để chạy cục bộ và tiện ích cục bộ sẽ yêu cầu xác nhận từ người dùng trước khi mở chúng. Khi người dùng không muốn xác nhận yêu cầu này, ADS chỉ đơn giản giảm xuống từ danh mục MFT cho các tập tin được download.

Một số trình ứng dụng media cũng đã cố gắng sử dụng ADS để lưu trữ siêu dữ liệu cho các tập tin media, để tổ chức sắp xếp, mà không sửa đổi nội dung dữ liệu có ích của bản thân các tập tin media (sử dụng các thẻ nhúng khi chúng được hỗ trợ bởi các đinh dạng tập tin media như MPEG và OGG); siêu dữ liệu này có thể được hiển thị trong Windows Explorer như các cột thông tin thêm, với sự giúp đỡ của một thanh ghi đã ghi một Windows Shell mở rộng mà có thể phân tích chúng, nhưng hầu hết các trình ứng dụng media thích sử dụng cơ sở dữ liệu của bản thân thay vì ADS để lưu trữ các thông tin (đặc biệt vì ADS được hiện thị các tập tin này cho tất cả người dùng, thay vì được quản lý với các thiết lập bảo mật riêng biệt cho mỗi người dùng và có các giá trị được xác định theo sở thích người dùng).

Các tập tin thưa[sửa | sửa mã nguồn]

Các tập tin thưa là các tập tin chứa các tập hợp dữ liệu thưa thớt, dữ liệu chủ yếu được làm đầy bằng các số 0. Các ứng dụng cơ sở dữ liệu, đôi khi sử dụng các tập tin thưa. Vì điều này, Microsoft đã triển khai thực hiện hỗ trợ cho việc lưu trữ hiệu quả của các tập tin thưa bằng cách cho phép một ứng dụng chỉ rõ các vùng dữ liệu rỗng (vùng toàn số 0). Một ứng dụng đọc một tập tin thưa theo kiểu bình thướng với hệ thống tập tin tính toán những gì dữ liệu cần phải trả lại dựa trên khoảng trống tập tin. Cũng như với các tập tin nén, kích thước thực tế của các tập tin thưa không được đưa vào bản kê khai khi xác định các giới hạn hạn ngạch.

Tập tin nén[sửa | sửa mã nguồn]

NTFS nén các tập tin bắng cách sử dụng một biến thể của thuật toán LZ77. Mặc dù truy cập đọc-ghi vào các tập tin nén được rõ ràng, Microsoft khuyến cáo tránh nén trên các hệ thống server và/hoặc mạng chia sẻ giữ hồ sơ chuyển vùng vì nó nạp một lượng đáng kể thông tin cần xử lý vào bộ xử lý.

Sao chép bóng ổ đĩa[sửa | sửa mã nguồn]

Dịch vụ sao chép bóng ổ đĩa (Volume Shadow Copy Service - VSS) giữ lại các phiên bản cũ của các tập tin và thư mục trong các ổ đĩa NTFS bằng cách sao chép dữ liệu ghi đè mới, cũ (copy-on-write). Dữ liệu tập tin cũ che dữ liệu mới khi người dùng yêu cầu hoàn nguyên một phiên bản trước đó. Điều này cho phép các chương trình sao lưu dữ liệu lưu trữ các tập tin hiện thời đang được sử dụng bởi hệ thống tập tin. Trên các hệ thống xử lý nhiều, Microsoft khuyến cáo thiếp lập một ổ sao lưu bóng trên một ổ đĩa riêng. Để đảm bảo phục hồi trong trường hợp hệ thống hư hỏng, VSS cũng sử dụng bản ghi USN để đánh dấu các giao tác cục bộ và đảm bảo các thay đổi hệ thống tập tin sẽ được phục hồi hiệu quả sau khi hệ thống khởi động lại khi ổ đĩa NTFS sẽ được cài đặt lại, hoặc giảm xuống an toàn đến một phiên bản cũ nếu phiên bản mới không được ghi đầy đủ trước khi xác nhận thực sự trước lúc đóng tập tin sửa đổi. Tuy nhiên, các bóng VSS này không được phối hợp tổng thể trên nhiều tập tin hay ổ đĩa, trừ khi sử dụng một người phối hợp giao tác. Họ chỉ có thể được sử dụng để đảm bảo răng các phiên bản cũ sẽ vẫn có thể truy cập trong các hoạt động sao lưu, để nhận được hình ảnh hệ thống phù hợp.

Giao tác NTFS[sửa | sửa mã nguồn]

Như với Windows Vista, các ứng dụng có thể sử dụng Giao tác NTFS để thay đổi nhóm các tập tin với nhau trong một giao tác. Giao tác sẽ đảm bảo tất cả thay đổi được diễn ra, hoặc không một ứng dụng nào trong tất cả được chạy, và nó sẽ đảm bảo các ứng dụng bên ngoài giao tác sẽ không nhìn thấy nhưng thay đổi cho đến khi chúng được thỏa hiệp thực hiện chính xác tức thì. Nó sử dụng các kỹ thuật tương tự như được sử dụng cho sao chép bóng ổ đĩa (ví dụ như copy-on-write) để đảm bảo dữ liệu ghi đè một cách an toàn, và các bản ghi UFS đánh dấu các giao tác vẫn chưa được thỏa hiệp, hay những giao tác đã được xác nhận nhưn chưa được áp dụng hoàn toàn (trong trường hợp hệ thống hư hỏng trong một thỏa hiệp bởi một trong những bên tham gia).

Tuy nhiên, trong một hệ thống tập tin cho phép giao tác, điều này có thể được sử dụng tạm thời cho tất cả tập tin khác cần thiết cho bất kỳ loại phân vùng, miễn là giao tác không phải thỏa hiệp, so với các tập tin hệ thống chỉ được đánh dấu cố định và được sửa đổi hoàn toàn trong các giao tác cục bộ ngầm riêng.

Kỹ thuật copy-on-write tuy nhiên được sửa đổi để cho phép hủy giao tác đang có hiệu lực và tránh việc tạo ra các phân đoạn trong hệ thống tập tin được sử dụng bởi nhiều người tham gia: các dữ liệu cũ có thể không được ghi đè ngay lập tức nhưng vẫn được giữ lại (đặc biệt khi nó hiện bị khóa bởi người khác cho phù hợp lần đọc trong các giao tác của nó); trong trường hợp đó, chỉ có những dữ liệu mới là không bị giữ lại trong một bóng tạm thời (chứ không phỉa là dữ liệu cũ copy-on-write), mà cuối cùng được áp dụng bằng cách sử dụng copy-on-write VSS bình thường khi giao tác sẽ được thỏa hiệp bởi việc ghi vào. Ngoài ra, các bóng tạm thời cho các dữ liệu mới, chỉ nhìn thấy bởi các quá trình tham gia có dữ liệu chưa được thỏa hiệp của riêng chúng, không nhất thiết phải ngay lập tức ghi vào đũa, nhưng chỉ có thể được duy trì trong bộ nhớ hoặc đổi chỗ các thỏa hiệp sau. Giao tác NTFS không hạn chế các giao tác để chỉ ổ đĩa NTFS cục bộ, nhưng cũng bao gồm các dữ liệu khác hoặc các hoạt động ở các điểm khác như lưu trữ dữ liệu trong các ổ đĩa riêng biệt, thanh ghi cục bộ, hay các cơ sở dữ liệu SQL, hoặc các trạng thái hiện tại của các dịch vụ hệ thống hay các dịch vụ từ xa.

Các giao tác là mạng rộng được điều phối với tất cả người tham gia bằng cách sử dụng một dịch vụ cụ thể, Distributed Transactions Coordinator (DTC) đảm bảo rằng tất cả người tham gia sẽ nhận được cùng trạng thái thỏa hiệp, và để vận chuyển các thay đổi đã được xác nhận bởi bất kỳ người tham gia nào (người khác có thể làm mất hiệu lực các vùng nhớ đệm cục bộ cho dữ liệu cũ hay hủy giao tác các thay đổi chưa được thỏa hiệp). Giao tác NTFS cho phép tạo ra mạng rộng phù hợp các hệ thống tập tin được phân phối, bao gồm với cả tập tin cục bộ hay trong các bộ nhớ đệm ngoại tuyến.

Hệ thống tập tin mã hóa (EFS - Encrypting File System)[sửa | sửa mã nguồn]

EFS cung cấp khả năng mã hóa mạnh và rõ ràng đối với người dùng cho bất kỳ tập tin hay thư mục nào trên một ổ đĩa NTFS. EFS làm việc chung với dịch vụ EFS, CryptoAPI của Microsoft và Thư viện thực thi hệ thống tập tin EFS (FSRTL). EFS hoạt động bằng cách mã hóa một tập tin với một khóa đối xứng khối (còn được gọi là Khóa mã hóa tập tin hay FEK), khóa này được sử dụng vì nó cần một khoảng thời gian nhỏ tương đối để mã hóa và giải mã số lượng lớn của dữ liệu, hơn là nếu một mã khóa không đối xứng được sử dụng. Khóa đối xứng được sử dụng để mã hóa tập tin sau đó sẽ được mã hóa với một khóa dùng chung, tiếp theo kết hợp với người dùng đã mã hóa tập tin, và dữ liệu được mã hóa này được lưu trữ trong một dòng dữ liệu luân phiên của tập tin được mã hóa. Để giải mã tập tin, hệ thống tập tin sử dụng khóa riêng của người sử dụng để giải mã khóa đối xứng mà được lưu trữ trong phần mào đầu của tập tin. Sau đó sử dụng khóa đối xứng để giải mã tập tin. Vì điều này được thực hiện ở mức độ hệ thống tập tin, nó được minh bạch đối với người sử dụng. Ngoài ra, trong trường hợp một người dùng bị mất quyền truy cập vào chính khóa của mình, các khóa giải mã thêm vào nhằm hỗ trợ cũng được tạo ra trong hệ thống EFS, để một tác nhân khôi phục vẫn có thể truy cập các tập tin nếu cần. Việc nén và mã hóa do NTFS cung cấp loại trừ lẫn nhau - NTFS có thể được sử dụng cho một và công cụ của bên thứ ba dành cho hãng khác. Sự hỗ trợ của EFS không có sẵn trong các phiên bản Basic, Home và MediaCenter của Windows, và nó phải được kích hoạt sau khi cài đặt các phiên bản Professional, Ultimate và Server của Windows hay bằng cách sử dụng các công cụ đặc biệt.

Cấp hạn ngạch[sửa | sửa mã nguồn]

Cấp hạn ngạch cho ổ đĩa được giới thiệu trong NTFS v3. Chúng cho phép người quản trị máy tính chạy một phiên bản của Windows có hỗ trợ NTFS để thiết lập một ngưỡng của không gian ổ đĩa mà những người dùng có thể sử dụng. Nó cũng cho phép những người quản trị duy trì kiểm tra không gian ổ đĩa mà mỗi người dùng đã sử dụng. Một người quản trị có thể chỉ định một mức nhất định của không gian ổ đĩa mà một người dùng có thể sử dụng trước khi họ nhận được một cảnh báo, và sau đó từ chối truy cập đối với người dùng một khi họ đạt tới giới hạn sử dụng không gian ổ đĩa. Cấp hạn ngạch ổ đĩa không dùng cho trương mục tập tin nén minh bạch của NTFS, điều này sẽ được kích hoạt. Các ứng dụng truy vấn dung lượng không gian ổ đĩa trống cũng sẽ thấy dung lượng không gian ổ đĩa còn trông mà người dùng được cấp.

Sự hỗ trợ của cấp hạn ngạch ổ đĩa không có sẵn trong các phiên bản Basic, Home và MediaCenter của Windows, và phải được kích hoạt sau khi cài đặt các phiên bản Professional, Ultimate và Server của Windows hay bằng cách sử dụng các công cụ đặc biệt.

Các điểm phân tích[sửa | sửa mã nguồn]

Tính năng này được giới thiệu trong NTFS v3. Tính năng này được sử dụng kết hợp một thẻ phân tích trong các thuộc tính không gian người dùng của một tập tin hay thư mục. Khi trình quản lý đối tượng phân tích một quá trình tra cứu tên hệ thống tập tin và gặp một thuộc tính phân tích, nó biết phải phân tích tra cứu tên, qua người sử dụng điều khiển dữ liệu phân tích đến tất cả trình điều khiển lọc hệ thống tập tin mà đã được nạp vào Windows 2000. Mỗi trình điều khiển lọc kiểm tra dữ liệu phân tích để xem nếu nó được kết hợp với điểm phân tích đó, và nếu có trình điều khiển lọc sẽ xác định so khớp sau đó nó chặn hướng gọi hệ thống tập tin và thực hiện chức năng đặc biệt của nó. Điểm phân tích được sử dụng để thực hiện Các điểm cài ổ đĩa, Liên kết thư mục, Quản lý lưu trữ phân bậc, Lưu trữ cấu trúc tự nhiên, Lưu trữ trường hợp riêng và Các liên kết biểu tượng.

Sự tương kết[sửa | sửa mã nguồn]

Các chi tiết về các đặc tính bổ sung không được đưa ra, điều này khiến nó khó khăn hơn cho các hãng bên thứ ba cung cấp các công cụ để xử lý NTFS.

Linux[sửa | sửa mã nguồn]

Khả năng đọc và ghi NTFS được cung cấp bởi trình điều khiển NTFS-3G. Nó có trong hầu hết các bản Linux. Cái khác đã lỗi thời và các giải pháp chỉ đọc phần lớn đang tồn tại gồm:

  • Hạt nhân Linux (kernel) 2.2: các phiên bản hạt nhân 2.2.0 và sau này bao gồm khả năng đọc các phân vùng NTFS
  • Hạt nhân Linux (kernel) 2.6: các phiên bản hạt nhân 2.6.0 và sau này có chứa một trình điều khiển được viết bởi Anton Altaparmakov (Đại học Cambridge) và Richard Russon. Nó hỗ trợ đọc tập tin, ghi đè lên và thay đổi kích cỡ.
  • NTFSMount: Một trình điều khiển đọc/ghi không gian người dùng NTFS. Nó cung cấp truy cập đọc-ghi đến NTFS, ngoại trừ các tập tin mã hóa và ghi nén, thay đổi quyền sở hữu tập tin và các quyền truy cập.
  • NTFS cho Linux: Một trình điều khiển thương mại với hỗ trợ đầy đủ đọc/ghi sẵn có từ Paragon.
  • Captive NTFS: Một trình điều khiển 'gói' được sử dụng trên trình điều khiển riêng của Windows, đó là ntfs.sys.

Lưu ý rằng cả ba trình điều khiển không gian người dùng, cụ thể là NTFSMount, NTFS-3G và Captive NTFS được xây dựng trên Filesystem in Userspace (FUSE - Hệ thống tập tin trong không gian người dùng), một module hạt nhân Linux thao tác với cầu nối không gian người dùng và mã hạt nhân để lưu và lấy dữ liệu. Hầu hết các trình điều khiển được liệt kê ở trên (ngoại trừ Paragon NTFS cho Linux) là mã nguồn mở (GPL). Do sự phức tạp của các cấu trúc NTFS bên trong, cả trình điều khiển hạt nhân 2.6.14 và FUSE được cài sẵn không cho phép thay đổi ổ đĩa bị coi là không an toàn nhằm tránh lãng phí.

Mac OS X[sửa | sửa mã nguồn]

Mac OS X v10.3 và các phiên bản sau này gồm hỗ trợ chỉ đọc cho các phân vùng định dạng NTFS. NTFS-3G có giấy phép GPL cũng làm việc trên Mac OS X thông qua FUSE và cho phép đọc và ghi vào các phân vùng NTFS. Một giải pháp độc quyền cho Mac OS X với truy cập đọc/ghi là "Paragon NTFS cho Mac OS X". Hỗ trợ ghi NTFS được phát hiện trong Mac OS X 10.6, nhưng chưa được kích hoạt như phiên bản 10.6.1, dù việc bẻ khóa để kích hoạt chức năng này đã được thực hiện.

Microsoft Windows[sửa | sửa mã nguồn]

Trong khi các phiên bản NTFS khác nhau dành cho hầu hết các phần đều hoàn toàn tương thích ngược và tương thích xuôi, cần cân nhắc kỹ thuật cho việc cài các ổ đĩa NTFS mới trong các phiên bản cũ của Microsoft Windows. Điều này ảnh hưởng tới khả năng khởi động kép, và ổ cứng di động gắn ngoài. Ví dụ, cố gắng sử dụng một phân vùng NTFS với "Các phiên bản trước" (còn gọi là Volume Shadow Copy) trên một hệ điều hành mà không hỗ trợ nó, sẽ khiến các nội dung của những phiên bản trước đó bị mất.

Những hệ điều hành khác[sửa | sửa mã nguồn]

eComStation, KolibriOS, và FreeBSD đưa ra khả năng hỗ trợ chỉ đọc NTFS (đây là trình điều khiển NTFS beta cho phép ghi/xóa cho eComStation, nhưng nó không hoàn toàn an toàn). Một công cụ miễn phí của bên thứ ba cho BeOS, mà dựa trên NTFS-3G cho phép đọc và ghi hoàn toàn NTFS. NTFS-3G cũng làm việc trên Mac OS X, FreeBSD, NetBSD, Solaris và Haiku, cộng với Linux dùng FUSE. Một trình điều khiển đọc.ghi cá nhân miễn phí cho MS-DOS được gọi là "NTFS4DOS" cũng được phát hành.

Tương thích với FAT[sửa | sửa mã nguồn]

Microsoft hiện đang cung cấp một công cụ (convert.exe) để chuyển đổi HPFS (chỉ có trên Windows NT 3), FAT16 và FAT32 (trên Windows 2000 và phiên bản Windows cao hơn) thành NTFS. Các công cụ của nhà phát triển thứ ba có mọi khả năng để thay đổi kích thước phân vùng NTFS an toàn. Microsoft thêm vào khả năng thu hẹp hoặc mở rộng một phân vùng với Windows Vista, nhưng khả năng này bị giới hạn bởi nó sẽ không di chuyển các mảnh tập tin trang nhớ hoặc tập tin đã được đánh dấu là cố định, do đó hạn chế khả năng thu hẹp một phân vùng. Khởi động lại mà không có tập tin trang nhớ hay sử dụng một công cụ của nhà phát triển thứ ba để chống phân mảnh, nó có thể làm giảm bớt trạng thái nếu tập tin trang nhớ này là tập tin cố định. Vì lý do lịch sử, các phiên bản của Windows mà không hỗ trợ NTFS đều giữ thời gian bên trong như múi giờ địa phương, và do đó mọi hệ thống tập tin khác ngoài NTFS được hỗ trở bởi các phiên bản hiện nay của Windows cũng làm vậy. Tuy nhiên, Windows NT và các hệ điều hành Windows sau này đều giữ nhãn giờ như UTC và làm cho các chuyển đổi thích hợp cho các mục đích hiển thị. Do đó, các nhãn giờ NTFS là UTC. Điều này có nghĩa là khi các tập tin được sao chép hoặc di chuyển giữa các phân vùng NTFS và không phải NTFS, hệ điều hành cần chuyển đổi các nhãn giờ cho phù hợp. Nhưng nếu một số tập tin được di chuyển khi tiết kiệm ánh sáng ngày (DST) có hiệu lực, và các tập tin khác được di chuyển khi giờ chuẩn có hiệu lực, có thể có một số điều không rõ ràng trong việc chuyển đổi. Kết quả là, đặc biệt là ngay sau khi một trong các ngày mà múi giờ địa phương thay đổi, người dùng có thể quan sát một số tập tin có nhãn giờ lệch một giờ. Do sự khác biệt trong việc thực hiện DST giữa bán cầu bắc và nam, điều này có thể gây lỗi nhãn giờ lên tới 4 giờ trong 12 tháng.

Các hạn chế[sửa | sửa mã nguồn]

NTFS có các hạn chế sau:

  • Tên tập tin dành riêng: Mặc dù hệ thống tập tin hỗ trợ đường dẫn lên đến khoảng 32.767 ký tự Unicode với mỗi thành phần đường dẫn (thư mục hoặc tên tập tin) có tới 255 ký tự chiều dài, như vậy sẽ có tên nào đó không sử dụng được, vì NTFS lưu siêu dữ liệu của mình trong các tập tin bình thường (mặc dù ẩn và cho hầu hết các phần không có); theo đó các tập tin người dùng không thể sử dụng các tên này. Những tập tin này tất cả đều có trong thư mục gốc của một ổ đĩa (và chỉ dành riêng cho thư mục đó). Các tên: $MFT, $MFTMirr, $LogFile, $Volume, $AttrDef,. (dấu chấm), $Bitmap, $Boot, $BadClus, $Secure, $Upcase, và $Extend;. (dấu chấm) và $Extend đều lưu trong cả các thư mục và các tập tin khác.
  • Kích thước ổ đĩa tối đa: Theo lý thuyết, ổ đĩa NTFS tối đa có 264−1 cluster. Tuy nhiên, kích thước ổ đĩa NTFS tối đa trên Windows XP Professional là 232−1 cluster. Ví dụ, bằng cách sử dụng 64 KiB cluster, kích thước ổ đĩa NTFS tối đa sẽ là 256 TiB trừ 64 KiB. Sử dụng kích thước cluster mặc định là 4 KiB, kích thước ổ đĩa NTFS tối đa là 16 TiB trừ 4 KiB (cả hai lớn hơn nhiều so với giới hạn 128 GiB tăng thêm trong Windows XP SP1). Bởi vì các bản phân vùng trên ổ đĩa bản ghi khởi động chủ (MBR) chỉ hỗ trợc kích thước phân vùng lên tới 2 TiB, ổ đĩa GPT hay động có thể sử dụng để tạo ra các ổ đĩa NTFS khởi động trên 2 TiB.
  • Kích thước tập tin tối đa: Theo lý thuyết là 16 EiB trừ 1 KiB (264 − 210 hay 18.446.744.073.709.550.592 bytes). Thực tế: 16 TiB trừ 64 KiB (244 − 216 hay 17.592.185.978.880 bytes)
  • Các dòng dữ liệu luân phiên: các lệnh hệ thống Windows có thể xử lý các dòng dữ liệu luân phiên. Tùy thuộc vào hệ điều hành, tiện ích và hệ thống tập tin xa, một chuyển giao tập tin có thể âm thầm tách các dòng dữ liệu. Một cách an toàn của các tập tin di chuyển hay sao chép là sử dụng các lệnh hệ thống BackupRead và BackupWrite, cho phép các chương trình đếm dòng, để xác minh xem từng dòng nên được khi vào ổ đĩa đích hay chủ định bỏ qua các dòng vi phạm.
  • Chiều dài đường tối đa: một đường tuyệt đối có thể lên đến 32.767 ký tự chiều dài; một đường tương đối được giới hạn trong 255 kí tự. Trong trường hợp xấu nhất này có nghĩa độ sâu tối đa là 128 thư mục, nhưng trong thực thế giới hạn này hiếm khi được thực hiện.
  • Miền thời gian: NTFS sử dụng cách tính thời gian như trong Windows NT: nhãn giờ 64 bit với phạm vi từ 1 tháng 1 năm 1601 đến 28 tháng 5 năm 60056 với độ chính xác 10 triệu tích tắc (107) trong một giây (tức là 100 nano giây cho mỗi tích tắc). Tuy nhiên trong thực tế, đồng hồ hệ thống không cung cấp độ chính xác như vậy, và chỉ có độ chính xác nhất được giữ (thường là 10 giây mà không hỗ trợ phần cứng thêm vào cho đồng hồ hệ thống tốt hơn). Ngoài ra, không phải tất cả các nhãn giờ có độ chính xác này: trong các thuộc tính tiêu chuẩn (tương thích với các ứng dụng DOS và Windows 95/98/ME), độ chính xác thấp hơn nhiều, và ngày truy cập cuối (nếu nó chưa được vô hiệu hóa trong các thiết lập đăng ký hệ thống) không phải luôn luôn được báo cáo ngay lập tức cho hệ thống tập tin và được làm tròn trong khoảng lớn hơn.
  • Thiếu độ dư thừa: NTFS không giữ bản sao dự phòng của tập tin MFT có chứa các tham chiếu đến tập tin nào được lưu trữ trên phân vùng đó. Nếu MFT bị hư hại, mọi dữ liệu sẽ không thể khôi phục lại được. Kể từ khi chỉ sao lưu dữ liệu này, ảnh MFT, không chứa tất cả các mục của MFT, nó có thể không thể sử dụng bản thân nó để phục hồi dữ liệu quan trọng.

Hệ thống file NTFS có khả năng hoạt động cao và có chức năng tự sửa chữa. Nhờ có tính năng lưu giữ lại các thông tin xử lý, NTFS có khả năng phục hồi file cao hơn trong những trường hợp ổ đĩa có sự cố. Nó hỗ trợ chế độ bảo mật ở mức độ file, nén và kiểm định. Nó cũng hỗ trợ các ổ đĩa lớn và các giải pháp lưu trữ mạnh mẽ như RAID.

NTFS sử dụng bảng quản lý tập tin MFT (Master File Table) thay cho bảng FAT (File Allocation Table) quen thuộc nhằm tăng cường khả năng lưu trữ, tính bảo mật cho tập tin và thư mục, khả năng mã hóa dữ liệu đến từng tập tin. Ngoài ra, NTFS có khả năng chịu lỗi cao, cho phép người dùng đóng một ứng dụng "chết" (not responding) mà không làm ảnh hưởng đến những ứng dụng khác. Tuy nhiên, NTFS lại không thích hợp với những ổ đĩa có dung lượng thấp (dưới 400 MB) và không sử dụng được trên đĩa mềm.

NTFS hiện có các phiên bản: v1.0, v1.1, v1.2 ở các phiên bản Windows NT 3.51 và 4, v3.0 ở phiên bản Windows 2000, v3.1 ở các phiên bản Windows XPWindows Server 2003. Riêng Windows XPWindows Server 2003 còn hỗ trợ các phiên bản v4.0, v5.0, v5.1

  • NTFS Là hệ thống file dành riêng cho windowsNT/2000. NTFS dùng 64 bít để định danh các cluster, nên nó có thể quản lý được các ổ đĩa có dung lương lên đến 16 Exabyte (16 tỉ Gb). Trong thực tế windowsNT/2000 chỉ sử dụng 32 bítđể định danh cluster, kích thước cluster là 64Kb, nên NTFS chỉ có thể quản lý được các ổ đĩa có dung lượng lên đến 128TB.

NTFS có một số tính năng cao cấp như bảo mật các file/directory, cấp hạn ngạch cho đĩa, nén file, mã hoá file, … Một trong những tính năng quan trọng của NTFS là khả năng phục hồi lỗi. Nếu hệ thống bị dừng một cách đột ngột, thì metadata của ổ đĩa FAT sẽ rơi vào tình trạng xung khắc dẫn đến làm sai lệch một lượng lớn dữ liệu tập tin và thư mục. Nhưng trên NTFS thì điều này không thể xảy ra, tức là cấu trúc của file/ Directory không bị thay đổi. Tên file trong NTFS có độ dài không quá 255 ký tự, đường dẫn đầy đủ đến file dài không quá 32.567 ký tự. Tên file sử dụng mã UniCode. Tên file trong NTFS có sự phân biệt giữa chữ hoa và chữ thường

Cấu trúc
Cấu trúc thư mục B+ Tree
Giới hạn
Kích thước tập tin Lý thuyết là 16 EiB nhưng thực tế hiện nay là 16 TiB
Số lượng tập tin 4.294.967.295 (2^32 − 1)
Độ dài tối đa của tên tập tin 255 ký tự
Kích thước tối đa của ổ đĩa Lý thuyết là 16 EiB trên thực tế là 256 TiB

Xem thêm[sửa | sửa mã nguồn]

Tham khảo[sửa | sửa mã nguồn]

Liên kết ngoài[sửa | sửa mã nguồn]

  • Linux-NTFS Một dự án mã nguồn mở hỗ trợ cho kernel Linux có thể đọc được các phân vùng NTFS.
  • Captive NTFS Một chương trình sử dụng driver (trình điều khiển) NTFS của Windows để hỗ trợ Linux đọc các phân vùng NTFS.