關於"在Linux下訪問Windows分割槽"的補充(轉)

ba發表於2007-08-13
關於"在Linux下訪問Windows分割槽"的補充(轉)[@more@]  這篇文章對於初學者是相當有用的,但是還不很完善。

  第一,windows系統分割槽有不同格式的問題,如9x的fat和fat32,nt的ntfs,以及2000和最新的xp的ntfs5,至於fat(fat32)格式,該文已經講得非常清楚了,而ntfs的訪問需要編譯核心。因為現在裝win2000和xp的讀者也很多了,必須說一下。

  第二,現在新版的linux如redhat已經不再在其package中包括linuxconf了,即使光碟上還帶得有此軟體包,預設狀態下也是不會安裝的,因此使用linuxconf並不是最好的方法,也絕非最簡單的方法。

  第三,文章中沒有說明中文的問題,而這是我們在使用中必然碰到的。因為通常在我們的windows分割槽中都有中文的目錄和檔案,如果不加入中文的支援,我們能訪問windows分割槽,也沒有太大的意義。

  本著對讀者負責的態度,現在補充如下:

  一、ntfs分割槽的訪問

  最好的辦法是在linux安裝前已經具有ntfs分割槽,這樣在安裝如mandrake和suse linux版本時,可以自動為你安裝相應的核心並設定好,你就可以在不知情的情況下自由地訪問windows分割槽,這也是我推薦初學者使用mandrake或者suse linux的原因,而redhat不會,因此需要編譯核心。

  1、找到編譯核心所需要的.config檔案。 在/usr/src/linux/configs目錄下有若干編譯核心所用的配置。選擇我們想要的配置,將它複製到/usr/src/linux目錄下,改名為.config,命令如下:cp /usr/src/linux/configs/kernel-2.2.16-i686.config /usr/src/linux/.config

  2 、修改.config檔案,去掉不用的模組,加上自己想要的模組。 開啟.config,有許多XXXX=m的項,這些都是要被編譯為模組的項,因為我們不希望編譯這些模組,所以要把XXXX=m的項統統去掉。然後再加上我們想要的模組,將# CONFIG_NTFS_FS is not set 改為CONFIG_NTFS_FS=m 當然,可以用你熟悉各種工具來做這件事。
  3、編譯NTFS模組。 在/usr/src/linux目錄下執行命令make modules來編譯我們想要的NTFS模組。

  4、安裝NTFS模組。 編譯後得到的ntfs.o在/usr/src/linux/fs/ntfs目錄下,手動將它複製到正確的目錄下。 cp /usr/src/linux/fs/ntfs/ntfs.o /lib/modules/2.2.16-22/fs/

  注意:千萬不能執行命令make modules_install,否則將帶來嚴重的後果,它會刪除你係統中的所有模組,只安裝剛剛編譯的模組(ntfs.o)。

  5、載入NTFS模組. 執行命令depmod;modprobe ntfs (以上為劉軍民先生找到的方法,該方法比較簡單和實用)

  另外你也可以使用make menuconfig,重新定製你需要的所有模組,接著執行make modeules;make modeules_install來安裝。但是這種方式要麻煩和費時些。

  二、直接編寫fstab檔案

  這是最簡單的方法。直接編寫fstab檔案的好處還在於,linux會在啟動時自動為你裝載你在其中定義的windows分割槽,不用在每次使用都要輸入:mount -t vfat /dev/hda1 /mnt/winc。使用su命令轉為root許可權,用vim或者其他編輯軟體開啟fstab(位於/etc/fstab),命令如下:vim /etc/fstab,內容示例如下:

/dev/hda8 / ext2 defaults 1 1
/dev/hda6 /boot ext2 defaults 1 2
none /dev/pts devpts mode=0620 0 0
/dev/hda9 /home ext2 defaults 1 2
/mnt/cdrom /mnt/cdrom supermount fs=iso9660,dev=/dev/cdrom 0 0
/mnt/floppy /mnt/floppy supermount fs=vfat,dev=/dev/fd0 0 0
/dev/hda1 /mnt/winc vfat user,exec,umask=0,codepage=936,iocharset=gb2312 0 0
/dev/hda5 /mnt/wind vfat user,exec,umask=0,codepage=936,iocharset=gb2312 0 0
none /proc proc defaults 0 0
/dev/hda7 /usr ext2 defaults 1 2
/dev/hda10 swap swap defaults 0 0

  我的fstab檔案內容多了一點,因為我的分割槽細了一點。你只要注意紅色那兩行。把/dev/hda1改為你的windows分割槽所在即可,如果windows有兩個分割槽,一般就是/dev/hda1和/dev/hda3。 如果你不清楚,按照我的fstab內容在你的fstab檔案中加入那兩行就行了,如果使用ntfs的,把其中的vfat改為ntfs即可。當然你首先要在/mnt目錄下建立兩個目錄winc和wind,命令如下:mkdir /mnt/winc /mnt/wind。重新啟動後看能不能訪問你的windows分割槽,逐步試探更改/dev/hda?(?代表數字)直到能訪問為止。

  三、關於中文的支援

  關鍵在於在你的fstab檔案中定義windows分割槽的一行的最後面加上:codepage=936,iocharset=gb2312 0 0,但是對於使用COSIX中軟linux或者紅旗linux的讀者來說,可以不加,顯示中文目錄和檔案也沒有問題,畢竟是漢化版本嘛。另外說明一點,中文目錄和檔案的顯示跟整個linux的設定有關,如果你沒有在此之前設定好中文環境,你還是無法在你的分割槽中看到中文目錄和檔案的,全部是些????代替了你的中文字,這不是這篇文章的內容了,有興趣的讀者請參考其他文章。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-952719/,如需轉載,請註明出處,否則將追究法律責任。

相關文章