Linux phù hợp với ntfs
Index
Gắn phân vùng windows (NTFS) khi khởi độngCó thể nếu bạn đã cài đặt Windows sau Ubuntu, nó sẽ không nhận ra phân vùng NTFS hoặc gắn kết nó khi khởi động hoặc bạn không có quyền truy cập nó. Giả định rằng chúng ta đang ở trong tình huống sau:
Chúng tôi tạo thư mục: $ sudo mkdir / media / windows Chúng tôi chỉnh sửa bảng phân vùng: $ sudo gedit / etc / fstab Thêm hoặc xác minh dòng sau trong tệp: / dev / hda1 / media / windows ntfs auto, ro, executive, users, dmask = 000, fmask = 111, nls = utf8 0 0 Lưu và thoát. Bây giờ chúng ta sẽ yêu cầu hệ thống gắn kết mọi thứ được chỉ ra trong / etc / fstab: sudo mount -a Nếu phân vùng / media / windows của bạn đã được gắn kết trước đó mount -a nó sẽ không hoạt động bình thường nếu bạn chưa ngắt kết nối phân vùng trước khi sử dụng sudo umount / media / windows Đã sẵn sàng, bây giờ chúng ta có thể tận hưởng phân vùng của mình trong / media / windows và nó sẽ tự gắn kết bất cứ khi nào hệ thống khởi động. Các bước này sẽ gắn phân vùng NTFS ở chế độ chỉ đọc nếu bạn muốn bật hỗ trợ ghi trong NTFS đọc Ghi dữ liệu vào phân vùng NTFS. Gắn phân vùng Windows (FAT) khi khởi độngNếu phân vùng Windows là phân vùng FAT32 và chúng tôi muốn cho phép đọc / ghi nó, chúng tôi sẽ thực hiện như sau: Giả định rằng chúng ta đang ở trong tình huống sau:
Chúng tôi tạo thư mục: $ sudo mkdir / media / windows Chúng tôi chỉnh sửa bảng phân vùng: $ sudo gedit / etc / fstab Thêm hoặc xác minh dòng sau trong tệp: / dev / hda1 / media / windows vfat gid = 100, umask = 0007, fmask = 0117, utf8 0 0 Lưu và thoát. Bây giờ chúng ta sẽ yêu cầu hệ thống gắn kết mọi thứ được chỉ ra trong / etc / fstab: sudo mount -a Nếu phân vùng / media / windows của bạn đã được gắn kết trước đó mount -a nó sẽ không hoạt động bình thường nếu bạn chưa ngắt kết nối phân vùng trước khi sử dụng sudo umount / media / windows Đã thấy trong | Hướng dẫn Ubuntu Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây. NTFS FAQ (Frequently Asked Questions)
Bản cập nhật mới nhất ở đây Dịch bởi: Trịnh Hoài Trí 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 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 - 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.2. NTFS Volumes
3. Linux và NTFS
4. Mount các NTFS volumes
5. Boot vào hệ điều hành trên NTFS6. Về các bản phân phối Linux khác nhau7. Driver NTFS mới cho Linux
Về đầu trang 1. Các thắc mắc cơ bản về NTFS1.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 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).
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 NTFSNTFS 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 Volumes2.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 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. 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. 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à NTFS3.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: 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ỉ 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:
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ôngXin 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 volumes4.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 Để 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'. Về đầu trang 4.6 Các tùy chọn thông dụng của lệnh mountCá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 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=gb2312utf8=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 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 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, 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 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. Đừ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 NTFS5.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 nhau6.1 Bản phân phối nào hỗ trợ sẵn NTFS?Đó 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. 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 Linux7.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 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 Copyright © flatcap (Richard Russon) |