Linux下實現 以讀寫方式掛載NTFS格式磁碟 使用ntfs-3g
在裝有雙系統的主機上,Linx下掛載windows系統下的磁碟很有必要,可以使用mount命令來實現。
mount命令的格式為:
mount [選項] <-t 型別> [-o 掛載選項] <裝置> <掛載點>
-t
選項用於指定分割槽上檔案系統的型別,最常遇到的檔案系統應該是 ext2FS(GNU/Linux檔案系統)或 ext3FS(改進了日誌效能的
ext2FS),VFAT(適用於所有 DOS/Windows®分割槽:FAT12, 16 or 32),NTFS(Windows下NTFS格式的分割槽)以及 ISO9660(CD-ROM
檔案系統),如果不指定任何型別,mount將會試著讀取分割槽中的超塊來猜測檔案系統。
-o
選項用於指定一個或多個掛載選項,這些選項與所需掛載的檔案系統相關,以NTFS格式為例,選項有:
iocharset=<charset> 設定編碼,如果出現亂碼的話,可以試試這個選項.
rw/ro 指定是可讀寫還是隻讀.如果掛載一些不想誤寫的東西時可以使用ro選項.
uid=<uid>,gid=<gid> 指定掛載檔案的uid和gid.
umask=<umask> 指定掛載後的umaks.
掛載步驟:
1、啟動終端,輸入 fdisk -l,獲取所有的檔案分割槽,判斷所需要掛載的分割槽的裝置名稱。
2、輸入 mount -t vfat -o rw /dev/sad2/ /mnt,沒有任何資訊提示,則表明掛載成功。
如果是需要掛載NTFS格式的磁碟,就需要在原始碼中修改模組,找到系統的原始碼目錄(/usr/src/Linux-2.6.xx-xxx),從終端輸入
cd /usr/src/Linux-2.6.xx-xxx/,進入原始碼目錄中後,輸入make menuconfig,出現圖形介面,在File System下的Dos/FAT/NTFS
filesystem選項中,將選項VFAT fs support,NTFS file system support,NTFS write support選中(即將前面的括號中符號改為*
,使用空格鍵修改)。然後退出,在終端輸入make modules和make modules_install來重新編譯模組,之後再使用mount命令就可以
掛載了。
mount -t NTFS -o rw /dev/sad2 /mnt
但是也有特殊情況,我現在使用的系統是linux-2.6.32-gentoo-r7,使用上述命令掛載NTFS格式磁碟時,只能從掛載的盤中讀出資料
,而不能寫入資料,提示permission denied,經過追蹤,發現系統使用mount命令時,沒有去呼叫底層的模組,而是在應用層模擬實
現了mount的功能,可能是不同的發行版所定義的不同,這時就需要使用一個新的工具來實現這個功能,那就是ntfs-3g。
從終端輸入 emerge -s ntfs3g
查詢到這個包的名稱,輸入emerge sys-fs/ntfs3g,安裝這個包
再執行 cd /usr/src/Linux-2.6.xx-xxx/,輸入make menuconfig啟動圖形介面,將File System中的FUSE(File system in
Userspace)support選項選中(即選項之前的<>中的內容改為M),然後退出,在終端輸入insmod fs/fuse/fuse.ko插入該模組。然
後使用mount命令
mount -t ntfs-3g /dev/sad2 /mnt
就可以實現NTFS格式磁碟掛載並讀寫了。
如果想要解除安裝模組,就是用umount /mnt就可以了。