1. 程式人生 > >Ubuntu 下掛載Windows分割槽

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