分类: LINUX
2010-02-03 10:04:02
原文用于Ubuntu,经本人验证,在Fedora系统下也可用
这是去年写的文章,翻出来放这,希望能对大家有用,毕竟很多朋友都是Linux和Win共存的双系统,废话不多说,这就进入正题。
我的系统是Ubuntu8.10版,其他版本或者其他发行版原理也差不多,不一样的地方可以自己探索一下。
Fstab 文件大家都很熟悉,Linux 在启动的时候通过 fstab 中的信息挂载各个分区,一个典型的分区条目就像这样:
/dev/sdb5 /mnt/usb vfat utf8,umask=0 0 0
/dev/sda4 为需要挂载的分区,sda4 是 Linux 检测硬盘时按顺序给分区的命名,一般来讲,这个名称并不会变化,但是如果你有多块硬盘,硬盘在电脑中的顺序变化的时候,相同的名称可能代表着不同的硬盘分 区,如果你是从 USB 设备启动,与其他 USB 设备的插入顺序也会导致分区识别的困难。
这个时候 UUID 就派上用场了,UUID 全称是 Universally Unique Identifier,也就是说,每个分区有一个唯一的 UUID 值,这样就不会发生分区识别混乱的问题了。
在 fstab 中用 UUID 挂载分区,看起来向这样:
UUID=1234-5678 /mnt/usb vfat utf8,umask=0 0 0
在 UUID= 后面填入分区相应的 UUID 值,就可以正确挂载分区了。
那么,我们如何知道一个分区的 UUID 呢?
有 3 种方法:
1. 通过浏览 /dev/disk/by-uuid/ 下的设备文件信息。
# ls -l /dev/disk/by-uuid/
------
lrwxrwxrwx 1 root root 10 10-13 09:14 0909-090B -> ../../sdb5
lrwxrwxrwx 1 root root 10 10-13 09:13 7c627a81-7a6b-4806-987b-b5a8a0a93645 -> ../../sda4
.....
2. 通过 vol_id 命令。
# vol_id /dev/sdb5
ID_FS_USAGE=filesystem
ID_FS_TYPE=vfat
ID_FS_VERSION=FAT32
ID_FS_UUID=0909-090B
ID_FS_UUID_ENC=0909-090B
ID_FS_LABEL=SWAP
ID_FS_LABEL_ENC=SWAP
ID_FS_LABEL_SAFE=SWAP
3. 通过 blkid 命令
# blkid /dev/sdb5
/dev/sdb5: LABEL="SWAP" UUID="0909-090B" TYPE="vfat"
通过这三种方法都可以获得分区的 UUID,UUID 依据分区不同,长度和格式都不相同。
Linux自动挂载Windows的分区
先介绍一下如何手工挂载分区:
如果你的分区是这样的:有C盘、D盘,可能还有E盘,且在分区时建了一个扩展分区,(在分区建的逻辑盘的话-如果不清楚这句话,可以不用管它)在linux文件系统中有/mnt/c、/mnt/d、/mnt/e,那么挂载的命令是:
挂载c盘:mount /dev/hda1 /mnt/c
挂载d盘:mount /dev/hda5 /mnt/d
挂载e盘:mount /dev/hda6 /mnt/e
注意:从d盘开始是/dev/hda5.
上面的这三条命令是最基本的mount使用方法。而且文件格式必须是fat、fat32格式.如果是ntfs,那么须增加格式选项:如下,
挂载c盘:mount -t ntfs /dev/hda1 /mnt/c
挂载d盘:mount -t ntfs /dev/hda5 /mnt/d
挂载e盘:mount -t ntfs /dev/hda6 /mnt/e
挂载的分区如果不能正确显示中文文件名的话,加上iohcarset=gb2316,命令变成下面的格式:
挂载c盘:mount /dev/hda1 /mnt/c -o iocharset=gb2312
挂载d盘:mount /dev/hda5 /mnt/d -o iocharset=gb2312
挂载e盘:mount -t ntfs /dev/hda6 /mnt/e -o iocharset=cp936
注意:ntfs格式时的的选项的不同
如果要挂载光驱的话:在/mnt下有一个目录cdrom
挂载光驱:mount -t iso9660 /dev/cdrom /cdrom
如果要挂载iso格式的文件:比如在d盘的目录下有一个xxx.iso文件,在/mnt下有一目录iso的话,
mount -o loop /mnt/d/xxx.iso /mnt/iso
实际上mount还可以做其它的一些事情。如果你已明白了上面的命令,还想看其它的一些功能和选项,在终端下输入:man mount
卸载分区的命令比较简单:
umount /mnt/c
umount /mnt/d
umount /mnt/e
umount /mnt/cdrom
umount /mnt/iso
下面来看一下如何自动挂载的问题:
在/etc目录下有一个文件fstab,在它的文件中加入以下代码:
/dev/hda1 /mnt/c vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda5 /mnt/d vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda6 /mnt/e ntfs ro,exec,umask=0,iocharset=utf8 0 0
这在文件就是实现自动挂载的参数设定。在系统启动时,会自动根据这个文件中的设置,自动挂载你的文件系统。
(上面的应该是不用虚拟机情况下的挂载方法吧,y用虚拟机挂载的方法参考vbox实现数据共享一篇)