Ubuntu 下掛載Windows分割槽
1. 手工掛載
1)首先你得知道Linux下對硬碟分割槽的稱呼。
sudo fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xf0b1ebb0
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2612 20980858+ 7 HPFS/NTFS
/dev/sda2 2613 19457 135307462+ f W95 Ext'd (LBA)
/dev/sda5 2613 6529 31463271 7 HPFS/NTFS
/dev/sda6 11753 19457 61890381 7 HPFS/NTFS
/dev/sda7 6530 6778 2000061 82 Linux swap / Solaris
/dev/sda8 6779 11752 39953623+ 83 Linux
其中是/dev/sda1 和 /dev/sda2主分割槽,其餘的是邏輯分割槽。/dev/sda1 是Windows 下的c盤,/dev/sda5 是Windows 下的D盤,/dev/sda6 是Windows 下的F盤,(我的E盤是光碟機)。
2)確定你所用的Linux系統的locale(這個locale包括了系統使用的語言和字元的編碼等資訊)。中文 Linux 常用的locale是zh_CN.gb2312,zh_CN.gbk,zh_CN.gb18030 和 zh_CN.UTF-8 。
在預設安裝中,Debian Linux和Mandriva Linux的locale是zh_CN.gb2312,而Ubuntu Linux和Fedora Linux的locale是zh_CN.UTF-8 。最好不要隨便更改locale,否則會出現很多亂碼的情形。要檢視系統的locale,可以在終端下輸入下面的命令檢視:
echo $LANG
3)你得知道你的windows分割槽的格式,這個在windows的分割槽的屬性中可以看到,一般是fat32和ntfs格式的。
假設你的locale是zh_CN.UTF-8,要掛載一個/dev/sda1的fat32格式的windows分割槽到/mnt/C目錄(若這個目錄不存在手工新建一個sudo mkdir /mnt/C),可以在終端下輸入以下命令(在Ubuntu裡還需要在這行命令前加上sudo):
mount -t vfat /dev/sda1 /mnt/C -o iocharset=utf8
如果你的locale不是zh_CN.UTF-8,把上面命令的utf8改為gb2312;如果這個windows分割槽是ntfs格式的,將上面命令的vfat改為ntfs。
這樣掛載的ntfs格式的分割槽,只有root能讀取,如果需要讓普通使用者也能讀取,需要再加上umask=022選項,如下:
mount -t ntfs /dev/sda1 /mnt/C -o iocharset=utf8,umask=022
類似地,如果要讓掛載的分割槽允許所有使用者讀取和修改,可以將上面的umask=022,改為umask=0就可以了。
4)解除安裝分割槽就簡單多了:
umount /dev/sda1
有時候解除安裝分割槽時提示分割槽繁忙(device is busy),可以先用下面的命令看看哪個程序在使用此分割槽:
fuser -cu /dev/sda1
假如螢幕的輸出為
/dev/sda1: 8463m(cck)
則可以用此命令看這個程序對應的程式名字:
ps 8463
然後可以用此命令結束此程序:
kill -9 8463
這樣就可以正常解除安裝分割槽了。
2. 自動掛載
要讓Linux系統啟動時自動掛載windows分割槽,可以把上述的命令寫入 /etc/fstab 檔案中,下面是一個例子:
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# / was on /dev/sda8 during installation
UUID=c75b08d0-5763-4754-a269-09e759b746da / ext4 errors=remount-ro 0 1
# swap was on /dev/sda7 during installation
UUID=86cd7015-66f4-4e91-bf36-f109818f8da4 none swap sw 0 0
/dev/sda1 /mnt/C ntfs utf8,umask=022 0 0
/dev/sda5 /mnt/D ntfs utf8,umask=022 0 0
/dev/sda6 /mnt/F ntfs utf8,umask=022 0 0