NTFS FAQ (Frequently Asked Questions)

English Italian Japanese Vietnamese German Simplified Chinese French Spanish Brazilian Traditional Chinese Russian

Bản cập nhật mới nhất ở đây
ntfs.html

Dịch bởi: Trịnh Hoài Trí tritrinh@hcm.vnn.vn Cập nhật 13/10/2003

FAQ này là một phần của Linux NTFS Project.

Nếu bạn có câu hỏi nào mà bản FAQ này không có, hoặc bạn có góp ý gì cho bản FAQ này, xin gởi email về cho linux-ntfs-dev@sourceforge.net

Mục lục:

Ký hiệu:

** - Các câu hỏi thường gặp
!! - Các thông tin lý thú khác
NB - Lưu ý cẩn thận

 Lệnh hay kết quả kết xuất

1. Các thắc mắc cơ bản về NTFS.

  1.1 NTFS là gì
  1.2 NTFS có tốt hơn FAT/FAT32 không?
  1.3 Tôi có nên dùng (hay nâng cấp lên) NTFS không?
!! 1.4 NTFS có giống nhau trên các phiên bản Windows khác nhau không?
  1.5 Giới hạn của NTFS

2. NTFS Volumes

  2.1 Làm sao để đọc một NTFS Volume từ Windows 95/98/ME hay DOS?
  2.2 Làm sao để chuyển đổi một FAT Volume sang một NTFS Volume?
!! 2.3 Làm sao để chuyển đổi một NTFS Volume sang một FAT Volume?
  2.4 Làm sao để xoá một NTFS Volume?
  2.5 Làm sao để chống phân mảnh (defrag) một NTFS volume?
** 2.6 Làm sao để thay đổi kích thước một NTFS volume?

3. Linux và NTFS

!! 3.1 Linux có thể đọc phiên bản NTFS nào?
** 3.2 Driver cho Linux có thể ghi vào một NTFS volume không?
  3.3 Linux hỗ trợ các tính năng nào của NTFS?
  3.4 Tôi nên làm gì khi gặp sự cố?
** 3.5 Làm sao để Linux hỗ trợ NTFS?
  3.6 Phiên bản nào là tốt nhất?
  3.7 Còn những công cụ hỗ trợ nào nữa?
  3.8 Driver hỗ trợ NTFS cho Linux đã được phát triển như thế nào?
  3.9 Ghi công

4. Mount các NTFS volumes

  4.1 Tôi có thể mount một NTFS volume không?
  4.2 Driver hỗ trợ NTFS cho Linux có an toàn không?
  4.3 Tôi nên dùng partition nào?
  4.4 Tôi đang dùng phiên bản nào của NTFS driver?
!! 4.5 Làm sao để mount một NTFS volume?
  4.6 Các tùy chọn thông dụng của lệnh mount
  4.7 Các tùy chọn cho driver nguyên thủy
  4.8 Các tùy chọn cho driver mới
** 4.9 Làm sao để thay đổi quyền truy cập của một NTFS volume?
!! 4.10 Làm sao để mount một NTFS volume một cách tự động?

5. Boot vào hệ điều hành trên NTFS

  5.1 Tôi có thể boot Windows trên một NTFS volume không?
  5.2 Dùng LILO như thế nào?
  5.3 Dùng GRUB thì phải làm sao?

6. Về các bản phân phối Linux khác nhau

  6.1 Bản phân phối nào hỗ trợ sẵn NTFS?
  6.2 Vì sao Red Hat không hỗ trợ NTFS?
  6.3 Vì sao Red Hat bị khóa khi truy cập vào NTFS volume?
  6.4 Có bản phân phối Linux nào cài Linux vào NTFS không?

7. Driver NTFS mới cho Linux

  7.1 Driver NTFS mới cho Linux là cái chi?
  7.2 Tôi có cần dùng driver mới không?
  7.3 Làm sao để dùng driver mới?
  7.4 Bản cải tiến (patch) là gì?
  7.5 Nếu tôi vẫn không hiểu thì phải làm sao?
  7.6 Khi nào thì nhân Linux mới sẽ chứa các phát triển này?
  7.7 Không thể viết các wrapper cho các driver của Windows sao?

Về đầu trang


1. Các thắc mắc cơ bản về NTFS

1.1 NTFS là gì?

NTFS viết tắt của New Technology Filesystem. Có chữ NT là vì NTFS được dùng lần đầu tiên trong Windows NT, và filesystem (hệ thống tập tin) chỉ là cách mà máy tính lưu trữ các tập tin trên đĩa. Các hệ điều hành khác nhau lưu trữ tập tin theo cách khác nhau.

NTFS được dùng trong Windows NT, 2000 và XP.

Về đầu trang


1.2 NTFS có tốt hơn FAT/FAT32 không?

Thật ra thì có. NTFS mạnh hơn nhiều so với FAT/FAT32. NTFS hỗ trợ tên tập tin dùng mã Unicode, bảo mật tốt hơn, hỗ trợ nén và mã hóa. Điểm yếu của NTFS là chỉ có Windows NT, 2000 hay XP là đọc được nó, nghĩa là bạn không thể khởi động máy bằng đĩa mềm DOS rồi đọc dữ liệu trên NTFS volume.

Nói vậy nhưng vẫn có ngoại lệ: Linux có driver cho NTFS từ tháng 12/1997. Ngoài ra cũng có chương trình cho phép DOS hỗ trợ NTFS, xem chi tiết hơn ở phần 2.1

Về đầu trang


1.3 Tôi có nên dùng (hay nâng cấp lên) NTFS không?

Không, mặc dù đây là một ý kiến hay cho hầu hết mọi người. Bạn có thể không nhận ra sự khác biệt, ngoại trừ một chuyện là sau khi dùng hay nâng cấp lên NTFS bạn không thể chuyển về lại FAT. Xem chi tiết hơn ở phần 2.3

NB Bạn có thể cài Windows NT trên một FAT16 filesystem, hay cài Windows 2000 hay XP trên một FAT32 filesystem, rồi nâng cấp lên NTFS sau.

Về đầu trang


1.4 NTFS có giống nhau trên các phiên bản Windows khác nhau không?

Không, mặc dù chúng có vẻ tương đồng, nhưng phiên bản mới hơn có các tính năng mà phiên bản trước không có. Ví dụ như Windows 2000 hỗ trợ hạn mức đĩa (quota).

NTFSPhiên bản Windows
v1.2NT 3.51, NT 4
v3.02000
v3.1XP

Phiên bản 1.2 đôi khi được biết tới như phiên bản 4.0;

Phiên bản 3.0 và 3.1 đôi khi được biết tới như phiên bản 5.0 và 5.1

Về đầu trang


1.5 Giới hạn của NTFS

NTFS hỗ trợ tới 263 bytes. Các NTFS volume có thế có đến 263 cluster, mỗi cluster có thể dài 64KB. Do vậy giới hạn của NTFS vào khoảng 500 tỉ gigabyte.

Về đầu trang


2. NTFS Volumes

2.1 Làm sao để đọc một NTFS Volume từ Windows 95/98/ME hay DOS?

Rất tiếc là không thể làm được. Các phiên bản Windows này chỉ hiểu FAT. NTFS chỉ có thể đọc bởi Windows NT, 2000 và XP.

Tuy vậy, bạn có thể dùng các tiện ích NTFS cho Windows 98NTFS cho DOS tại SysInternals để đọc NTFS từ Windows 95, 98 và DOS. Nếu bạn trả tiền, bạn có thể mua phiên bản cho phép ghi vào NTFS, nhưng chúng rất đắt.

Về đầu trang


2.2 Làm sao để chuyển đổi một FAT Volume sang một NTFS Volume?

Mở một cửa sổ dòng lệnh trong Windows rồi gõ vào dòng lệnh sau đây, nhớ thay thế x: với volume muốn chuyển đổi:

    convert x: /fs:ntfs
    

Nếu volume này đang bị sử dụng, việc chuyển đổi sẽ diễn ra khi bạn khởi động lại máy.

NB Lệnh này không thể đảo ngược, Xem thêm mục tiếp theo.

Về đầu trang


2.3 Làm sao để chuyển đổi một NTFS Volume sang một FAT Volume?

Không thể được, trừ khi bạn có tiền. Partition Magic (norton.com) có thể chuyển đổi giữa nhiều hệ thống tập tin khác nhau, kể cả NTFS và FAT.

Về đầu trang


2.4 Làm sao để xoá một NTFS Volume?

Điều này tùy thuộc vào hệ điều hành bạn đang sử dụng.

DOS, Windows 95/98/ME: dùng fdisk. Dùng một đĩa mềm boot, hoặc boot Windows vào chế độ DOS, rồi chạy fdisk. Nếu bạn có nhiều hơn một đĩa thì trước hết bạn phải chọn ổ đĩa mình muốn, rồi chọn xoá non-DOS partition.

Windows NT: dùng Computer Management.

Windows 2000, XP: dùng Logical Disk Manager. Vào Control Panel, chọn Administrative Tools, rồi chọn Computer Management.

Về đầu trang


2.5 Làm sao để chống phân mảnh (defrag) một NTFS volume?

Sau một thời gian sử dụng, các tập tin trên đĩa sẽ bị phân mảnh, nghĩa là chúng không nằm cùng một chỗ với nhau mà rải rác nhiều nơi trên đĩa. Điều này làm chậm hệ thống khi hệ thống tìm cách truy cập các tập tin này.

Windows 2000 và XP có gồm sẵn chương trình chống phân mảnh. Có một chương trình miễn phí cho Windows NT - Diskeeper Lite - có thể tải về từ http://diskeeper.com

Về đầu trang


2.6 Làm sao để thay đổi kích thước một NTFS volume?

Cho đến gần đây cách duy nhất để làm điều này mà không bị mất dữ liệu là chi thật nhiều tiền. Giờ đây chúng ta đã có ntfsresize. Chương trình này đã qua một số thử nghiệm. Xem chi tiết hơn tại ntfsresize FAQ.

Một chương trình khác có thể thay đổi kích thước NTFS là Partition Magic (http://powerquest.com) nhưng không miễn phí.

Về đầu trang


3. Linux và NTFS

3.1 Linux có thể đọc phiên bản NTFS nào?

Driver hỗ trợ NTFS cho Linux có thể đọc mọi phiên bản của NTFS (xem phần 1.4). Các phiên bản có khác nhau chút ít, nhưng driver hỗ trợ này chỉ phải phiên dịch các tập tin và thư mục. Các chỉ mục (index) mà NTFS kiểm soát có thể được bỏ qua một cách an toàn.

Khi driver muốn ghi vào NTFS volume, khi đó có thể khả năng ghi này bị thay đổi đôi chút tùy theo phiên bản NTFS nó định ghi vào.

Về đầu trang


3.2 Driver cho Linux có thể ghi vào một NTFS volume không?

Thật ra thì không, nhưng nếu bạn chỉ cần chép tập tin từ Linux sang Windows trên một máy tính khởi động kép (dual-boot), xem cách đi vòng trong phần Làm sao để ghi vào NTFS dưới đây. Nếu bạn cần hỗ trợ ghi vào NTFS từ Linux, xin xem tiếp.

Hiện nay có hai driver. Driver nguyên thủy cho nhân 2.4 có phần mã cho phép ghi, nhưng cực kỳ nguy hiểm. Bạn có nhiều nguy cơ làm hỏng cả hệ thống tập tin của bạn!

Driver mới, được đưa vào nhân 2.5.11, cũng có phần mã cho phép ghi, nhưng tính năng rất giới hạn. Driver này có thể ghi đè lên tập tin có sẵn, nhưng không thể thay đổi kích thước tập tin, hay tạo tập tin mới, hay xoá các tập tin có sẵn.

Thêm phần hỗ trợ ghi này sẽ mất nhiều thời gian. NTFS được tổ chức như là một cơ sở dữ liệu. Bất cứ thay đổi nào bạn tạo ra cũng cần được cập nhật tại nhiều chỗ khác nhau để bảo đảm tính nhất quán của hệ thống. Bạn chỉ cần phạm một sai lầm nhỏ là cả hệ thống tập tin của bạn bị hỏng. Nếu bạn phạm nhiều sai lầm, cả hệ thống tập tin của bạn sẽ bị phá hủy hoàn toàn. Hơn nữa, các nhà phát triển chỉ làm việc với NTFS như là thú tiêu khiển trong lúc nhàn rỗi. Nếu bạn muốn hỗ trợ họ, xin gởi email cho tôi: linux-ntfs-dev@sourceforge.net

Làm sao để ghi vào NTFS. Nếu bạn đang dùng máy tính có khởi động kép (dual-boot) và bạn chỉ cần chuyển tập tin từ Linux sang Windows, bạn có thể dùng các driver cho ext2/ext3 để đọc các tập tin này trên các partition Linux khi đang chạy Windows. Bằng cách dùng hai driver chỉ đọc không ghi này bạn có thể chép các tập tin từ hệ thống tập tin này sang hệ thống tập tin khác.

Các driver mã nguồn mở sau đây hỗ trợ ext2 và ext3 Linux cho Windows, cập nhật 4/6/2003:

Về đầu trang


3.3 Linux hỗ trợ các tính năng nào của NTFS?

NTFS hỗ trợ khá nhiều tính năng, nhưng chỉ có một số ít được driver NTFS cho Linux hỗ trợ.

Driver NTFS cho Linux hỗ trợ tên tập tin với mã Unicode (chuyển thành utf8 hoặc một local codepage), các tập tin nén và sparse file.

Tuy vậy, driver không thể đọc các tập tin bị mã hoá, driver cũng bỏ qua các thông tin về bảo mật của Windows, và bỏ qua hạn ngạch đĩa (quota) của Windows.

Về đầu trang


3.4 Tôi nên làm gì khi gặp sự cố?

Driver NTFS cho Linux khá an toàn khi chỉ đọc, nhưng không thể kiểm tra hết mọi tình huống. Nếu bạn gặp sự cố, xin giúp chúng tôi xác định và sửa lỗi đó.

Xin gởi email cho nhóm phát triển tại địa chỉ linux-ntfs-dev@list.sourceforge.net và cho biết bạn đang dùng phiên bản nào của driver, phiên bản Linux (uname -a) và phiên bản của NTFS (Win NT, 2K hay XP).

Xin gởi cả các log (/var/log/messages) nếu bạn thấy hữu ích.

Xin cảm ơn.

Về đầu trang


3.5 Làm sao để Linux hỗ trợ NTFS?

Hầu hết người dùng không phải biên dịch lại chương trình nào cả. Hầu hết các bản phân phối Linux (trừ Red Hat) đều gồm sẵn hỗ trợ NTFS.

Nếu bạn sử dụng Red Hat 9 (Shrike), 8.0 (Psyche) hay 7.3 (Valhalla), bạn chỉ cần cài đặt gói rpm để có hỗ trợ NTFS. Gói rpm bao gồm cả hướng dẫn chi tiết bên trong.

Nếu bạn dùng các phiên bản Red Hat cũ hơn, hay các bản phân phối khác không có sẵn hỗ trợ NTFS, bạn phải tự biên dịch nhân Linux. Nghe thì có vẻ phức tạp, nhưng thật ra thì không khó. Bạn có thể xem ở đây để biết chi tiết.

Về đầu trang


3.6 Phiên bản nào là tốt nhất?

Phiên bản mới của driver tốt hơn phiên bản nguyên thủy, nhanh hon, ít lỗi hơn và dùng an toàn cho các hệ thống nhiều bộ xử lý (SMP). Driver mới có trong nhân 2.5.11 trở đi, và một bản cải tiến (patch) đã được phát triển để thêm driver này vào nhân 2.4

Về đầu trang


3.7 Còn những công cụ hỗ trợ nào nữa?

Hiện tại chỉ có một vài công cụ dành cho các nhà phát triển. Có thể xem danh sách các công cụ chúng tôi có ở đây.

Thường thì các phát triển cho phép ghi vào NTFS được ưu tiên hơn.

Về đầu trang


3.8 Driver hỗ trợ NTFS cho Linux đã được phát triển như thế nào?

Microsoft không tiết lộ bất cứ tài liệu gì về thiết kế của NTFS, vì vậy chúng tôi phải tìm cách giải mã hệ thống tập tin này. Phương pháp đại khái như sau:

  1. Xem volume bằng một trình xử lý mã lục thập phân (hex editor)
  2. Thực hiện một số tác vụ, như là tạo tập tin
  3. Dùng trình xử lý mã lục thập phân để xem các thay đổi
  4. Phân loại và lập tài liệu cho các thay đổi
  5. Lặp lại mãi các bước 1-4

Nếu bạn thấy quy trình này có vẻ tốn công thì bạn có thể hiểu công việc này khó khăn tới mức nào. Chúng tôi giờ đã hiểu khá nhiều về NTFS và chúng tôi đã lập tài liệu về nó cho mọi người có thể sử dụng tại: ../ntfs/index.html

Việc viết driver đơn giản hơn nhiều so với việc thu thập thông tin.

Về đầu trang


3.9 Ghi công

Xin cảm ơn Martin von Löwis đã tạo ra driver NTFS nguyên thủy vào năm 1995. Driver này đã được thêm vào nhân Linux vào tháng 12/1997 (2.1.74). Những người sau đây đã giúp anh:

Albert Cahalan, Anton Altaparmakov, Damon Casale, David Dillard, Domagoj Pensa, Joseph Malicki, Matthew Fanto, Olof Wolgast, Rani Assaf, Régis Duchesne, Richard Russon, Steve Dodd, Werner Seiler.

Xin cảm ơn Anton Altaparmakov. Sự nhiệt tình của anh đã giúp duy trì chương trình này. Vào lúc mà chương trình này bị bỏ dở, anh đã tiếp nhận và ổn định phần mã. Anh tiếp tục viết lại mã của driver từ đầu để có một nền tảng tốt hơn cho việc hỗ trợ ghi vào NTFS. Những người sau đây đã giúp anh:

Pawel Kot, Richard Russon.

Về đầu trang


4. Mount các NTFS volumes

4.1 Tôi có thể mount một NTFS volume không?

Tất nhiên là được. Driver có thể đọc mọi phiên bản của NTFS, nhưng chỉ đọc mà thôi.

Về đầu trang


4.2 Driver hỗ trợ NTFS cho Linux có an toàn không?

Nói chung thì khi chỉ đọc thì cả phiên bản nguyên thủy lẫn phiên bản mới đều an toàn. Các driver này không thay đổi gì cả lên hệ thống tập tin NTFS, vì vậy chúng không thể gây bất kỳ hư hỏng nào.

Thêm vào đó, phiên bản driver mới an toàn khi dùng với các hệ thống nhiều bộ xử lý (SMP)

Về đầu trang


4.3 Tôi nên dùng partition nào?

Trên Linux các đĩa được đặt tên hda, hdb cho hai ổ đĩa đầu tiên trên kênh IDE đầu tiên, và hdc, hdd cho các ổ đĩa thứ ba và thứ tư. Các đĩa SCSI được đặt tên sda, sdb, v.v... theo thứ tự chúng được hệ thống nhận diện.

Có một cách đơn giản để tìm các NTFS volume là sử dụng

    fdisk -l
    

Bạn sẽ nhận được kết xuất đại khái như sau:

    Disk /dev/hda: 64 heads, 63 sectors, 4465 cylinders
    Units = cylinders of 4032 * 512 bytes

       Device Boot    Start       End    Blocks   Id  System
       /dev/hda1             1      2125   4283968+  07  NTFS/HPFS
       /dev/hda2          2126     19851  35735616   0f  Win95 Ext'd (LBA)
       /dev/hda5   *      2126      4209   4201312+  83  Linux
       /dev/hda6          4210      4465    516064+  82  Linux swap
    

Về đầu trang


4.4 Tôi đang dùng phiên bản nào của NTFS driver?

Nếu bạn dùng nhân Linux 2.4.*, hay 2.5.0 – 2.5.10, bạn có thể đang dùng driver NTFS cho Linux phiên bản nguyên thủy. Nếu bạn dùng nhân 2.5.11 hay mới hơn, bạn có thể đang dùng phiên bản mới của driver NTFS cho Linux.

Tốt hơn là kiểm tra bằng cách nhìn vào kernel log để tìm các NTFS log message. Sử dụng một trong hai lệnh sau đây (bạn có thể phải là root để xem được các log).

    dmesg | grep -i ntfs
    grep -i ntfs /var/log/messages
    

Phiên bản nguyên thủy của driver là phiên bản 1.1.*, trong khi các phiên bản mới của driver có số phiên bản 2.*.

Về đầu trang


4.5 Làm sao để mount một NTFS volume?

Đầu tiên nên kiểm tra xem nhân Linux của bạn có hiểu NTFS không. Lệnh dưới đây sẽ cho một danh sách các hệ thống tập tin mà Linux hiểu được. Nếu bạn thấy ntfs thì nhân Linux của bạn hiểu NTFS. Ngoài ra, bạn nên đọc manual của lệnh mount, man 8 mount.

    cat /proc/filesystems
    

Tiếp theo bạn cần tạo một chỗ để mount NTFS volume vào. Xong, bạn có thể mount nó vào.

    mkdir /mnt/windows
    mount /dev/hda1 /mnt/windows -t ntfs -r
    

NB Để thay đổi quyền truy cập trên hệ thống tập tin đã mount, xem các tùy chọn umask tại phần 4.6. Nếu bạn muốn mount tự động lúc khởi động, xem phần 4.10.

Bạn có thể unmount bằng một trong hai lệnh sau đây:

    umount /mnt/windows
    umount /dev/hda1
    

NB Chú ý là lệnh umount chỉ có một chữ 'n'.

Về đầu trang


4.6 Các tùy chọn thông dụng của lệnh mount

Các tùy chọn sau đây thông dụng cho cả hai phiên bản của driver. Bạn nên đọc man page của lệnh mount. Dạng thức thông thường của lệnh mount như sau:

    mount device directory [options]
    

Các tùy chọn cho phần -o option có thể thêm vào đơn lẻ, hay cùng lúc cách nhau bằng dấu phẩy. Hai lệnh sau đây là tương đương:

    mount /dev/hda1 /mnt/windows -o X -o Y -o Z
    mount /dev/hda1 /mnt/windows -o X,Y,Z
    
-t ntfs
Cho lệnh mount biết hệ thống tập tin muốn mount. Tùy chọn này không cần thiết vì lệnh mount biết cách nhận dạng hầu hết các dạng hệ thống tập tin.
-r
Mount chỉ đọc. Mount thường tìm cách mount một volume cho phép đọc và ghi, trừ khi chỉ định rõ.
-o ro
Tùy chọn này tương tự như -r.
-o umask={VALUE}
Quyền truy cập mặc nhiên gán cho NTFS volume được mount là rwx------ vì lý do bảo mật. Tham số umask kiểm soát quyền truy cập vào các tập tin và thư mục. Xem phần 4.9 để biết thêm chi tiết.
    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
    
-o uid={USERID}
Mặc nhiên các tập tin trên NTFS volume mount vào sẽ có chủ sở hữu là root. Bạn có thể gán lại quyền sở hữu bằng tham số uid. USERID có thể là tên bất kỳ trong /etc/passwd, hay bất kỳ số nào biểu thị cho một user id.
    mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=flatcap
    mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=500
    
-o gid={GROUPID}
Mặc nhiên tất cả các tập tin trên NTFS volume mount vào sẽ có nhóm sở hữu là root. Bạn có thể gán lại quyền sở hữu cho nhóm khác bằng tham số gid. GROUPID có thể là tên nhóm bất kỳ trong /etc/group, hoặc số bất kỳ biểu thị cho một group id.
    mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=winusers
    mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=520
    

Về đầu trang


4.7 Các tùy chọn cho driver nguyên thủy

Để biết bạn đang dùng driver nào, xem phần 4.4. Phần này bàn về các tùy chọn cho phiên bản nguyên thủy của driver mà thôi. Các tùy chọn thông dụng đã được bàn tại phần 4.6.

Một số tùy chọn có dạng true hay false
Bạn có thể thay true với yes hay 1.
Bạn có thể thay false với no hay 0.

-o iocharset={NAME}

NTFS lưu tên các tập tin và thư mục bằng mã Unicode. Mã này có thể thể hiện bất kỳ ký tự nào của bất kỳ ngôn ngữ nào. Mặc nhiên driver NTFS cho Linux chuyển đổi các tên này sang mã ASCII. Cách này dùng được cho một số người nhưng có thể không tốt nếu ngôn ngữ của bạn có những ký tự đặc biệt.

NLS (Native Language Support) kiểm soát cách hiển thị các ký tự. Bạn có thể chọn utf8, giống như Unicode, có thể hiển thị mọi ký tự, hoặc chọn trang mã riêng của bạn, ví dụ iso8859-1 (Tây Âu), iso8859-2 (Trung Âu), gb2312 (tiếng Hoa giản lược), iso8859-8 (Hebrew). Dưới đây là một số ví dụ về lệnh mount:

    mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=utf8
    mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=iso8859-2
    mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=gb2312
    
utf8=true

Nếu nhân Linux của bạn không hỗ trợ utf8, bạn có thể dùng tùy chọn này để làm việc với hỗ trợ utf8 từ driver NTFS. Bạn cần dùng -o iocharset=utf8 bất cứ khi nào cần:

    mount /dev/hda1 /mnt/windows -t ntfs -r -o utf8=true
    
-o posix={BOOL}

Windows bảo toàn chữ in hoa hay chữ thường trong tên tập tin, nhưng Windows không phân biệt chúng khi đọc. Vì vậy bạn có thể tạo một tập tin tên MyFileName và mở nó ra bằng cách yêu cầu tập tin tên mYfiLEname.

Mặc nhiên thì Linux phân biệt chữ in hoa và chữ thường, MyFile, MYFILE, và myfile là các tên tập tin khác nhau. Nếu bạn muốn Linux xử lý tên tập tin giống Windows cho một NTFS volume, bạn hãy đặt tùy chọn posix về giá trị true. Đặt tùy chọn này về false sẽ làm driver ứng xử theo kiểu của Linux.

    mount /dev/hda1 /mnt/windows -t ntfs -r -o posix=true
    
-o show_sys_files={BOOL}

Nếu tùy chọn này được đặt về true thì các metadata của hệ thống tập tin sẽ được hiển thị. Nếu chúng không hiển thị chúng vẫn có thể được liệt ra bằng cách gọi thẳng tên, ví dụ ls -l \$MFT

NB Do giới hạn của glibc, $MFT có thể không xuất hiện

    mount /dev/hda1 /mnt/windows -t ntfs -r -o show_sys_files=true
    

Về đầu trang


4.8 Các tùy chọn cho driver mới

Để biết bạn đang dùng driver nào, xem phần 4.4. Phần này bàn về các tùy chọn cho phiên bản mới của driver mà thôi. Các tùy chọn thông dụng đã được bàn tại phần 4.6

Một số tùy chọn có dạng true hay false
Bạn có thể thay true với yes hay 1.
Bạn có thể thay false với no hay 0.

-o nls={NAME}

NTFS lưu tên các tập tin và thư mục bằng mã Unicode. Mã này có thể thể hiện bất kỳ ký tự nào của bất kỳ ngôn ngữ nào. Mặc nhiên driver NTFS cho Linux chuyển đổi các tên này sang mã ASCII. Cách này dùng được cho một số người nhưng có thể không tốt nếu ngôn ngữ của bạn có những ký tự đặc biệt.

NLS (Native Language Support) kiểm soát cách hiển thị các ký tự. Bạn có thể chọn utf8, giống như Unicode, có thể hiển thị mọi ký tự, hoặc chọn trang mã riêng của bạn, ví dụ iso8859-1 (Tây Âu), iso8859-2 (Trung Âu), gb2312 (tiếng Hoa giản lược), iso8859-8 (Hebrew). Dưới đây là một số ví dụ về lệnh mount:

    mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=utf8
    mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=iso8859-2
    mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=gb2312
    
-o fmask={VALUE}
-o dmask={VALUE}

Tham số umask thay đổi quyền truy cập cho cả tập tin lẫn thư mục (xem phần 4.6). fmask có tác động trên các tập tin, trong khi dmask tác động trên các thư mục theo cùng một cách. Có thể phối hợp tác dụng của hai tham số này. Ví dụ:

    mount /dev/hda1 /mnt/windows -t ntfs -r -o fmask=0222
    mount /dev/hda1 /mnt/windows -t ntfs -r -o dmask=0222
    mount /dev/hda1 /mnt/windows -t ntfs -r -o fmask=0077,dmask=0222
    
-o case_sensitive={BOOL}

Windows bảo toàn chữ in hoa hay chữ thường trong tên tập tin, nhưng Windows không phân biệt chúng khi đọc. Vì vậy bạn có thể tạo một tập tin tên MyFileName và mở nó ra bằng cách yêu cầu tập tin tên mYfiLEname.

Mặc nhiên thì Linux phân biệt chữ in hoa và chữ thường, MyFile, MYFILE, và myfile là các tên tập tin khác nhau. Nếu bạn muốn Linux xử lý tên tập tin giống Windows cho một NTFS volume, bạn hãy đặt tùy chọn case_sensitive về giá trị false. Đặt tùy chọn này về true sẽ làm driver ứng xử theo kiểu của Linux.

    mount /dev/hda1 /mnt/windows -t ntfs -r -o case_sensitive=true
    mount /dev/hda1 /mnt/windows -t ntfs -r -o case_sensitive=false
    
-o sloppy={BOOL}

Mặc nhiên thì driver sẽ từ chối mount nếu bất kỳ tùy chọn nào được khai báo không chính xác. Bằng cách thêm tham số sloppy, bạn có thể làm driver bỏ qua các tùy chọn không chính xác.

    mount /dev/hda1 /mnt/windows -t ntfs -r -o sloppy=true
    mount /dev/hda1 /mnt/windows -t ntfs -r -o sloppy=false
    
-o errors={VALUE}

Tham số này kiểm soát cách mà driver phản ứng với các lỗi. Mặc nhiên là thử lại và tiếp tục (VALUE=continue). Các sai lỗi sẽ được đánh dấu và tìm cách đi vòng. Cách khác là yêu cầu driver thử lại và khôi phục (VALUE=recover). Hiện nay driver chỉ có thể khôi phục bằng cách thay thế boot sector với bản sao lưu dự phòng.

    mount /dev/hda1 /mnt/windows -t ntfs -r -o errors=continue
    mount /dev/hda1 /mnt/windows -t ntfs -r -o errors=recover
    

Về đầu trang

4.9 Làm sao để thay đổi quyền truy cập của một NTFS volume?

Có 3 tùy chọn để kiểm soát quyền truy cập và quyền sở hữu của các tập tin và thư mục, đó là umask, uidgid, xem phần 4.6 Các tùy chọn thông dụng của lệnh mount.

Dưới đây là vài ví dụ cho mỗi tùy chọn và cách mà chúng ảnh hưởng đến các tập tin. Ta sẽ dùng cùng một lệnh mount và chỉ chú ý vào phần tùy chọn.

    mount /dev/hda1 /mnt/windows -t ntfs -r
    

umask là một bộ lọc quyền truy cập, làm việc theo cách ngược lại với chmod. Toàn quyền tương ứng với 777 (rwxrwxrwx). Umask 0222 (-w—w—w-) và 555 (r-xr-xr-x)

Mặc nhiên thì umask được gán 0077 vì lý do bảo mật.

    mount ... -o umask=0277

    -r-x------ 1 root    root    28096 Aug 24 1996 chkdsk.exe
    
    mount ... -o umask=0222

    -r-xr-xr-x 1 root    root    28096 Aug 24 1996 chkdsk.exe
    

Cho tới đây các tập tin vẫn có người và nhóm sở hữu là root. Tiếp theo ta sẽ thử tham số uid và gid.

    mount ... -o uid=flatcap

    -r-x------ 1 flatcap root    28096 Aug 24 1996 chkdsk.exe
    
    mount ... -o gid=winuser

    -r-x------ 1 root    winuser 28096 Aug 24 1996 chkdsk.exe
    
    mount ... -o uid=flatcap,gid=winuser

    -r-x------ 1 flatcap winuser 28096 Aug 24 1996 chkdsk.exe
    

Cuối cùng, kết hợp vài tham số với nhau để có kết quả như mong muốn. Dưới đây ta cho flatcap toàn quyền, nhóm winuser có quyền đọc và các user khác không được truy cập.

    mount ... -o umask=0027,uid=flatcap,gid=winuser

    -rwxr-x--- 1 flatcap winuser 28096 Aug 24 1996 chkdsk.exe
    

Về đầu trang


4.10 Làm sao để mount một NTFS volume một cách tự động?

Một khi bạn đã quen thuộc với lệnh mount, bạn có thể chỉ định Linux tự động mount NTFS bằng cách thêm một dòng vào tập tin /etc/fstab (filesystem table)

Dưới đây là vài ví dụ về lệnh mount và lệnh tương đương của nó dùng trong tập tin fstab.

NB Đừng quan tâm về ý nghĩa của 0 0 ở cuối dòng

    mount /dev/hda1 /mnt/windows -t ntfs -r

    /dev/hda1 /mnt/windows ntfs ro                                    0 0
    

Bây giờ ta chuyển đổi -r thành -o ro tương đương:

    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222

    /dev/hda1 /mnt/windows ntfs ro,umask=0222                         0 0
    
    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222,uid=flatcap,gid=winuser

    /dev/hda1 /mnt/windows ntfs ro,umask=0222,uid=flatcap,gid=winuser 0 0
    

Về đầu trang


5. Boot vào hệ điều hành trên NTFS

5.1 Tôi có thể boot Windows trên một NTFS volume không?

Được, cả grub và lilo đều có thể boot Windows từ một NTFS volume. Thật ra thì Linux boot loader tìm NTFS boot loader và chuyển điều khiển cho nó.

Về đầu trang


5.2 Dùng LILO như thế nào?

Thêm phần này vào /etc/lilo.conf rồi chạy lilo

    other = /dev/hda1
        table = /dev/hda
        label = Windows
    

Mục other chỉ vào partition có chứa Windows và mục table chỉ vào bảng partition của đĩa đó.

Về đầu trang


5.3 Dùng GRUB thì phải làm sao?

Thêm phần này vào /boot/grub/grub.conf

    title Windows
        root (hd0,0)
        makeactive
        chainloader +1
    

Dùng cách đánh số đĩa của grub: /dev/hda tương ứng với hd0, hdb tương ứng với hd1, v.v... Các partition được đánh số từ số không (zero). Vì vậy, hda1 tương ứng với hd0,0, hdc4 tương ứng với hd2,3

Về đầu trang


6. Về các bản phân phối Linux khác nhau

6.1 Bản phân phối nào hỗ trợ sẵn NTFS?

Đó là các bản Mandrake, Debian, SuSE, GentooCaldera

Thật ra nếu bản phân phối đó không phải là Red Hat thì nó sẽ hỗ trợ NTFS.

Về đầu trang


6.2 Vì sao Red Hat không hỗ trợ NTFS?

Tôi cũng rất muốn biết. Tin đồn nói rằng do vấn đề luật pháp.

Về đầu trang


6.3 Vì sao Red Hat bị khóa khi truy cập vào NTFS volume?

Kiểm tra phiên bản của nhân Linux bạn đang sử dụng bằng lệnh uname -a. Nếu phiên bản 2.4.9 thì bạn cần phải cập nhật nhân Linux. Xem trang web của Red Hat để biết thêm chi tiết.

Nếu thích bạn có thể tự biên dịch lại nhân Linux cho mình. Xem phần 3.5 Làm sao để Linux hỗ trợ NTFS?

Về đầu trang


6.4 Có bản phân phối Linux nào cài Linux vào NTFS không?

Không nhiều. Phat Linux có thể cài vào một FAT partition trong Windows, rồi boot từ các tập tin bên trong Windows. Driver NTFS mới hỗ trợ gần như đầy đủ cho bản phân phối này dùng NTFS.

Về đầu trang


7. Driver NTFS mới cho Linux

7.1 Driver NTFS mới cho Linux là cái chi?

Đó là bản driver được viết lại hoàn toàn mới. Phiên bản nguyên thủy đã được viết từ nhiều năm trước. Thoạt đầu chúng ta chỉ biết chút ít về NTFS hay Linux, làm cho mã nguồn ngày càng trở nên khó sửa chữa.

Chúng tôi đã viết lại một driver mới, dựa trên những kiến thức mới thu thập được. Driver mới này đơn giản hơn nhiều, nhanh hơn và dễ sửa chữa phát triển hơn.

Về đầu trang


7.2 Tôi có cần dùng driver mới không?

Không, bạn đã có một driver NTFS ngay trong nhân Linux hiện hành, vì vậy bạn không cần dùng bản driver mới này. Phiên bản driver nguyên thủy dù xưa cũ, vẫn đủ tin cậy để dùng.

Về đầu trang


7.3 Làm sao để dùng driver mới?

Chúng tôi phát hành phiên bản driver mới như là một bản cải tiến (patch) cho mã nguồn của bản nhân Linux chính thức.

../downloads.html
http://www.kernel.org/pub/linux/kernel/v2.4/

Về đầu trang


7.4 Bản cải tiến (patch) là gì?

Bản cải tiến (patch) là một bộ các thay đổi cho một bộ các tập tin dạng văn bản. Do chúng tôi chỉ thay đổi các mã NTFS nên sẽ không hiệu quả để phát hành toàn bộ mã của hạt nhân Linux mỗi khi cải tiến. Chúng tôi viết bản cải tiến (patch) cho các release chính thức của hạt nhân Linux.

Một khi bạn đã mở gói nguồn, hãy đổi vào thư mục chứa mã nguồn và dùng lệnh sau đây (đổi đường dẫn nếu cần):

    patch -p1 < path/to/patchname
    

Lệnh này sẽ thay đổi mã nguồn. Bạn cần kiểm tra để bảo đảm không có lỗi. Xong biên dịch lại hạt nhân như bình thường. Các hướng dẫn để làm việc này có thể tìm thấy đâu đó trong các FAQ

Về đầu trang


7.5 Nếu tôi vẫn không hiểu thì phải làm sao?

Chúng tôi cố gắng giúp mọi người trong khả năng của chúng tôi, nhưng thời gian của chúng tôi có hạn. Có vài trang web có thể giúp bạn hiểu cơ bản về Linux. Ngoài ra, bạn có thể tìm các Nhóm người dùng Linux gần chỗ bạn.

Về đầu trang


7.6 Khi nào thì nhân Linux mới sẽ chứa các phát triển này?

Có hai nhân Linux để xem xét. Mã của phát triển mới đã được thêm vào trong nhân Linux đang được phát triển. Nó đã được thêm vào từ phiên bản 2.5.11

Phiên bản ổn định của nhân Linux, hiện đang là 2.4.20, vẫn chứa phiên bản cũ của driver. Mặc dù chúng tôi cho rằng phiên bản mới đã ổn định, chúng ta vẫn phải thuyết phục các Ngài quản lý hạt nhân rằng nó tốt thật sự.

Cho đến khi phiên bản mới được kết hợp vào nhân Linux, chúng tôi vẫn tiếp tục phát hành các bản cải tiến dưới dạng patch.

Về đầu trang


7.7 Không thể viết các wrapper cho các driver của Windows sao?

Nghe thì có vẻ là ý kiến hay, nhưng có nhiều vấn đề khó giải quyết.

Vấn đề kỹ thuật lớn nhất là liên kết các thư viện liên kết động DLL của Widnows vào Linux VFS. Có thể làm được, nhưng sẽ không hay lắm. Nó sẽ phải chạy như là một phần của hạt nhân, điều đó có nghĩa là nếu nó có vấn đề thì cả hệ thống sẽ bị sụp. Vì không có mã nguồn chúng ta khó có thể giải quyết vấn đề một cách ổn thoả.

Vấn đề tiếp theo là tính tương thích. Chúng ta sẽ dùng phiên bản nào của hệ thống tập tin của Windows? Nếu chỉ chọn một sẽ làm cho bản driver không thể được ứng dụng rộng rãi, còn làm cho bản wrapper tương hợp với tất cả sẽ là một cơn ác mộng về lập trình!

Tệ hơn nữa, các ràng buộc về luật pháp khi phân phối hệ thống Windows có thể gây rắc rối. Ngoài ra bản chất độc quyền của loại driver này sẽ đồng nghĩa với việc các nhà lập trình hạt nhân sẽ không điều tra các sự cố ai đó sẽ gặp khi dùng driver này.

Về đầu trang