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
- Các câu hỏi thường gặp
- Các thông tin lý thú khác
- Lưu ý cẩn thận
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 |
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.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? |
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.
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
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
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.
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).
NTFS | Phiên bản Windows |
---|---|
v1.2 | NT 3.51, NT 4 |
v3.0 | 2000 |
v3.1 | XP |
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
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.
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 98
và NTFS 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.
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.
Lệnh này không thể đảo ngược, Xem thêm mục tiếp theo.
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.
Đ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.
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
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í.
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.
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:
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.
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.
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.
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
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.
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:
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.
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.
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.
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)
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
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.*.
Đầ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
Để 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
Chú ý là lệnh umount
chỉ có một chữ
'n'.
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
-r.
mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=flatcap mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=500
mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=winusers mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=520
Để 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
.
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
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
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
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
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
Để 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
.
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
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
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
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
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
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
, uid
và gid
, 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
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.
Đừ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
Đượ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ó.
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 đó.
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
Đó là các bản Mandrake, Debian, SuSE, Gentoo và Caldera
Thật ra nếu bản phân phối đó không phải là Red Hat thì nó sẽ 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.
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?
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.
Đó 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.
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.
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/
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
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.
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.
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.
Copyright © flatcap (Richard Russon) |