在 Linux 上使用 NTFS
Linux kernel 對 NTFS 的支援非常有限
主要的原因當然是因為微軟不公開 NTFS 的檔案系統格式
因此,我們想要在 NTFS 底下建立、刪除或變更檔案的大小都是很困難且有風險的, 僅僅可以去覆蓋原本已存的檔案 (而原檔案大小不變)
1.NTFS Driver
1.1.ntfs driver (read-only)
原本的 http://linux-ntfs.sourceforge.net/ 已搬到 http://www.linux-ntfs.org/
原來的 Linux-NTFS project 提供了 ntfs (read-only) 的 driver 以及 NTFS 相關的工具程式 (ntfsprogs)
但這些工具程式都是有風險性的
使用方式:
$ mount -t ntfs /dev/hda1 /XP
1.2.ntfs-3g driver (read-write)
http://www.linux-ntfs.org/ 的 Linux-NTFS project 最近發表了 ntfs-3g driver
http://sourceforge.net/mailarchive/forum.php?thread_id=23836054&forum_id=2697
號稱提供了一個更快速更安全的 open source driver,雖然目前還在 beta 階段,不過根據一些使用者的實際測試結果,成功率很高,也有不錯的效能
使用方式:
$ ntfs-3g /dev/hda1 /XP -o silent,umask=0,locale=zh_TW.UTF-8
1.3.captive-ntfs driver (read-write)
http://www.jankratochvil.net/project/captive/ 的 captive-ntfs driver
算是最早支援 “寫入” NTFS 的 open source driver
原理是使用 Wine 的方式透過原本的 Microsoft Windows ntfs.sys driver
使用方式:
$ mount -t captive-ntfs /dev/hda1 /XP
1.4.Paragon NTFS for Linux Driver (read-write)
http://www.ntfs-linux.com/ 的 Paragon NTFS for Linux Driver
這是商業版本的 driver,號稱可以完全讀寫 NTFS
2.在 Windows 上讀寫 ext2/ext3
因為 NTFS 的種種限制,與其冒著風險來寫入 NTFS,不如來個反其道而行
在 Windows 上來讀寫 ext2/ext3
2.1.Ext2IFS
http://www.fs-driver.org/index.html
提供在 Windows NT4.0/2000/XP 上完整存取 Linux Ext2 (read access and write access)
Linux Ext3 的存取部份請參考 FAQ: http://www.fs-driver.org/faq.html
2.2.Explore2fs
http://www.chrysocome.net/explore2fs
Explore2fs 是圖形化介面的工具,幾乎可以存取大部份 ext2/ext3 檔案系統
目前主要是支援讀取部份
Beta 版本的 Virtual Volumes (Explore2fs 2 預覽版) 則預計要支援:
Supported by all versions of Windows (Vista is still Work In Progress)
Reads and Writes LVM2 (Multiple slices is still Work In Progress)
Reads and Writes EXT2/EXT3
Reads and Writes Win32 filesystems (via Win32 API)
Reads software RAID0 and RAID1
VFS allows mounting on subdirectories
VFS abstraction allows multiple filesystems to be supported
VFS abstraction allows network filesystems like ftp & http be supported
Command line interface
GUI
Accessable in native namespace
NT Kernel driver to enable IFS to read LVM2
3.實測結果
底下為我個人的測試結果,測試的準確性可能會受硬碟內外圈及 Cache 等因素的影響,因此,數據僅供參考,以 “read” 來說,ntfs driver 的效果最好,速度跟 ntfs-3g 差不多,captive-ntfs 則慢了點,而在 “write” 部份,ntfs-3g 的表現的確不錯,captive-ntfs 的表現就慢很多很多
測試主機:
Acer Veriton 7800GX 桌機
Intel 945G Chipset
CPU P4-3.0G (HT)
RAM 512Mb
SATA WDC WD800JD-22LS 80G 7200RPM HDD
$ ls -l ubuntu-6.06-desktop-i386.iso
-rw-r--r-- 1 root root 731744256 Jun 20 11:47 ubuntu-6.06-desktop-i386.iso
我的 SATA 硬碟的分割如下:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 10080520 6868316 3212204 69% /
/dev/sda5 8064272 5883248 2181024 73% /SL
/dev/fuse 20490872 5294168 15196704 26% /XP
/dev/sda3 37571064 12375192 23287352 35% /var/ftp
/dev/shm 253496 0 253496 0% /dev/shm
我以 ubuntu-6.06-desktop-i386.iso 731744256 (約 700Mb) 大檔複製來做測試
Write 部份:
3.1.Use ntfs-3g driver
$ time cp ubuntu-6.06-desktop-i386.iso /XP/
(連測三次的結果)
real 1m43.250s
user 0m0.224s
sys 0m3.432s
real 1m13.189s
user 0m0.152s
sys 0m3.600s
real 1m2.355s
user 0m0.152s
sys 0m3.424s
3.2.Use captive-ntfs driver
$ time cp ubuntu-6.06-desktop-i386.iso /XP/
(因為實在太慢了,我只測了兩次就測不下去了)
real 46m24.915s
user 0m0.848s
sys 0m6.800s
real 39m43.023s
user 0m0.800s
sys 0m6.488s
至於 Paragon NTFS Dirver 因為要 $$ 買,所以沒去測
Read 部份:
3.3.Use ntfs-3g driver
$ time cp /XP/ubuntu-6.06-desktop-i386.iso /var/ftp/
(連測三次的結果)
real 0m36.037s
user 0m0.100s
sys 0m3.860s
real 0m37.327s
user 0m0.160s
sys 0m3.464s
real 0m37.831s
user 0m0.132s
sys 0m3.796s
3.4.Use ntfs driver
$ time cp /XP/ubuntu-6.06-desktop-i386.iso /var/ftp/
(連測三次的結果)
real 0m30.422s
user 0m0.180s
sys 0m6.392s
real 0m31.072s
user 0m0.128s
sys 0m6.500s
real 0m29.892s
user 0m0.156s
sys 0m6.212s
3.5.Use captive-ntfs driver
$ time cp /XP/ubuntu-6.06-desktop-i386.iso /var/ftp/
(連測三次的結果)
real 1m58.328s
user 0m0.144s
sys 0m3.612s
real 1m57.597s
user 0m0.104s
sys 0m3.272s
real 2m21.475s
user 0m0.172s
sys 0m4.348s
4.結語
很多同時裝有 Windows and Linux 的使用者,應該都有同樣的困擾:
就是如何讓資料能夠在兩個不同的作業系統底下可以共享,同時也可以讀跟寫
要達到共享的方法其實很多,如建立一個 FAT32 分割區來共享,但缺點是 FAT32 的效能不彰,透過另一台網路伺服器來共享,只要有網路便可以輕易共享檔案
然而,大家最希望的方法,還是能夠在 Linux 底下就能直接存取(讀寫) NTFS
以及在 Windows 底下就能直接存取 (讀寫) Ext2/Ext3 等檔案系統,後者比較沒有太大的問題,而前者因為微軟的不公開 NTFS 檔案系統格式而造成阻礙,雖然 captive-nfts driver 透過 ntfs.sys 的方式勉強可以寫入 NTFS,但是速度實在很慢; 現在,在 ntfs-3g driver 出現後,整個存取 NTFS 的速度大幅提昇 (包含讀跟寫)相信在不久的將來,等 ntfs-3g driver 更穩定更成熟後,想要輕鬆在 Linux 底下有效率的讀跟寫 NTFS 的檔案系統決不會只是夢想而已
5.相關文章
http://bisqwit.iki.fi/story/howto/ntfs/
http://digg.com/linux_unix/NTFS-3G_-_Full_NTFS_read_write_support_for_Linux
http://osnews.com/comment.php?news_id=15196
Linux kernel 對 NTFS 的支援非常有限
主要的原因當然是因為微軟不公開 NTFS 的檔案系統格式
因此,我們想要在 NTFS 底下建立、刪除或變更檔案的大小都是很困難且有風險的, 僅僅可以去覆蓋原本已存的檔案 (而原檔案大小不變)
1.NTFS Driver
1.1.ntfs driver (read-only)
原本的 http://linux-ntfs.sourceforge.net/ 已搬到 http://www.linux-ntfs.org/
原來的 Linux-NTFS project 提供了 ntfs (read-only) 的 driver 以及 NTFS 相關的工具程式 (ntfsprogs)
但這些工具程式都是有風險性的
使用方式:
$ mount -t ntfs /dev/hda1 /XP
1.2.ntfs-3g driver (read-write)
http://www.linux-ntfs.org/ 的 Linux-NTFS project 最近發表了 ntfs-3g driver
http://sourceforge.net/mailarchive/forum.php?thread_id=23836054&forum_id=2697
號稱提供了一個更快速更安全的 open source driver,雖然目前還在 beta 階段,不過根據一些使用者的實際測試結果,成功率很高,也有不錯的效能
使用方式:
$ ntfs-3g /dev/hda1 /XP -o silent,umask=0,locale=zh_TW.UTF-8
1.3.captive-ntfs driver (read-write)
http://www.jankratochvil.net/project/captive/ 的 captive-ntfs driver
算是最早支援 “寫入” NTFS 的 open source driver
原理是使用 Wine 的方式透過原本的 Microsoft Windows ntfs.sys driver
使用方式:
$ mount -t captive-ntfs /dev/hda1 /XP
1.4.Paragon NTFS for Linux Driver (read-write)
http://www.ntfs-linux.com/ 的 Paragon NTFS for Linux Driver
這是商業版本的 driver,號稱可以完全讀寫 NTFS
2.在 Windows 上讀寫 ext2/ext3
因為 NTFS 的種種限制,與其冒著風險來寫入 NTFS,不如來個反其道而行
在 Windows 上來讀寫 ext2/ext3
2.1.Ext2IFS
http://www.fs-driver.org/index.html
提供在 Windows NT4.0/2000/XP 上完整存取 Linux Ext2 (read access and write access)
Linux Ext3 的存取部份請參考 FAQ: http://www.fs-driver.org/faq.html
2.2.Explore2fs
http://www.chrysocome.net/explore2fs
Explore2fs 是圖形化介面的工具,幾乎可以存取大部份 ext2/ext3 檔案系統
目前主要是支援讀取部份
Beta 版本的 Virtual Volumes (Explore2fs 2 預覽版) 則預計要支援:
Supported by all versions of Windows (Vista is still Work In Progress)
Reads and Writes LVM2 (Multiple slices is still Work In Progress)
Reads and Writes EXT2/EXT3
Reads and Writes Win32 filesystems (via Win32 API)
Reads software RAID0 and RAID1
VFS allows mounting on subdirectories
VFS abstraction allows multiple filesystems to be supported
VFS abstraction allows network filesystems like ftp & http be supported
Command line interface
GUI
Accessable in native namespace
NT Kernel driver to enable IFS to read LVM2
3.實測結果
底下為我個人的測試結果,測試的準確性可能會受硬碟內外圈及 Cache 等因素的影響,因此,數據僅供參考,以 “read” 來說,ntfs driver 的效果最好,速度跟 ntfs-3g 差不多,captive-ntfs 則慢了點,而在 “write” 部份,ntfs-3g 的表現的確不錯,captive-ntfs 的表現就慢很多很多
測試主機:
Acer Veriton 7800GX 桌機
Intel 945G Chipset
CPU P4-3.0G (HT)
RAM 512Mb
SATA WDC WD800JD-22LS 80G 7200RPM HDD
$ ls -l ubuntu-6.06-desktop-i386.iso
-rw-r--r-- 1 root root 731744256 Jun 20 11:47 ubuntu-6.06-desktop-i386.iso
我的 SATA 硬碟的分割如下:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 10080520 6868316 3212204 69% /
/dev/sda5 8064272 5883248 2181024 73% /SL
/dev/fuse 20490872 5294168 15196704 26% /XP
/dev/sda3 37571064 12375192 23287352 35% /var/ftp
/dev/shm 253496 0 253496 0% /dev/shm
我以 ubuntu-6.06-desktop-i386.iso 731744256 (約 700Mb) 大檔複製來做測試
Write 部份:
3.1.Use ntfs-3g driver
$ time cp ubuntu-6.06-desktop-i386.iso /XP/
(連測三次的結果)
real 1m43.250s
user 0m0.224s
sys 0m3.432s
real 1m13.189s
user 0m0.152s
sys 0m3.600s
real 1m2.355s
user 0m0.152s
sys 0m3.424s
3.2.Use captive-ntfs driver
$ time cp ubuntu-6.06-desktop-i386.iso /XP/
(因為實在太慢了,我只測了兩次就測不下去了)
real 46m24.915s
user 0m0.848s
sys 0m6.800s
real 39m43.023s
user 0m0.800s
sys 0m6.488s
至於 Paragon NTFS Dirver 因為要 $$ 買,所以沒去測
Read 部份:
3.3.Use ntfs-3g driver
$ time cp /XP/ubuntu-6.06-desktop-i386.iso /var/ftp/
(連測三次的結果)
real 0m36.037s
user 0m0.100s
sys 0m3.860s
real 0m37.327s
user 0m0.160s
sys 0m3.464s
real 0m37.831s
user 0m0.132s
sys 0m3.796s
3.4.Use ntfs driver
$ time cp /XP/ubuntu-6.06-desktop-i386.iso /var/ftp/
(連測三次的結果)
real 0m30.422s
user 0m0.180s
sys 0m6.392s
real 0m31.072s
user 0m0.128s
sys 0m6.500s
real 0m29.892s
user 0m0.156s
sys 0m6.212s
3.5.Use captive-ntfs driver
$ time cp /XP/ubuntu-6.06-desktop-i386.iso /var/ftp/
(連測三次的結果)
real 1m58.328s
user 0m0.144s
sys 0m3.612s
real 1m57.597s
user 0m0.104s
sys 0m3.272s
real 2m21.475s
user 0m0.172s
sys 0m4.348s
4.結語
很多同時裝有 Windows and Linux 的使用者,應該都有同樣的困擾:
就是如何讓資料能夠在兩個不同的作業系統底下可以共享,同時也可以讀跟寫
要達到共享的方法其實很多,如建立一個 FAT32 分割區來共享,但缺點是 FAT32 的效能不彰,透過另一台網路伺服器來共享,只要有網路便可以輕易共享檔案
然而,大家最希望的方法,還是能夠在 Linux 底下就能直接存取(讀寫) NTFS
以及在 Windows 底下就能直接存取 (讀寫) Ext2/Ext3 等檔案系統,後者比較沒有太大的問題,而前者因為微軟的不公開 NTFS 檔案系統格式而造成阻礙,雖然 captive-nfts driver 透過 ntfs.sys 的方式勉強可以寫入 NTFS,但是速度實在很慢; 現在,在 ntfs-3g driver 出現後,整個存取 NTFS 的速度大幅提昇 (包含讀跟寫)相信在不久的將來,等 ntfs-3g driver 更穩定更成熟後,想要輕鬆在 Linux 底下有效率的讀跟寫 NTFS 的檔案系統決不會只是夢想而已
5.相關文章
http://bisqwit.iki.fi/story/howto/ntfs/
http://digg.com/linux_unix/NTFS-3G_-_Full_NTFS_read_write_support_for_Linux
http://osnews.com/comment.php?news_id=15196
全站熱搜
留言列表