1. 程式人生 > >Linux下實現 以讀寫方式掛載NTFS格式磁碟 使用ntfs-3g

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就可以了。