Chinaunix首页 | 论坛 | 博客
  • 博客访问: 239552
  • 博文数量: 60
  • 博客积分: 2466
  • 博客等级: 大尉
  • 技术积分: 662
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-16 13:25
文章分类

全部博文(60)

文章存档

2014年(1)

2012年(15)

2011年(24)

2010年(17)

2009年(3)

我的朋友

分类: LINUX

2010-02-03 10:04:02

原文用于Ubuntu,经本人验证,在Fedora系统下也可用
这是去年写的文章,翻出来放这,希望能对大家有用,毕竟很多朋友都是Linux和Win共存的双系统,废话不多说,这就进入正题。
我的系统是Ubuntu8.10版,其他版本或者其他发行版原理也差不多,不一样的地方可以自己探索一下。 


       第一步:在开始工作之前先把所有的Windows分区挂载上。在Ubuntu上挂载分区我就不多说了,其他的需要用到命令的请参考我另外一篇帖子。挂载之后打开终端,输入 sudo fdisk -l 查看当前分区情况。可以看到如下图中的类似内容:
          
这 里我们要把Win下分区的信息记下来,比如这里我有两个分区是Win的,记下它们的分区号sda1、sda5。再进入根目录下,找到挂载分区的文件夹,比 如在我的系统中是挂载在media目录下的,有些发行版是挂载在mnt目录,这里是个人情况而定。这样第一步算完成了 。

       接下来是第二步,先把刚刚挂载的分区卸下,Ubuntu卸载分区很方便,如果不是Ubuntu的话可以通过命令卸载分区。相关命令在另外的帖子里也有。分区卸载后打开终端输入命令 sudo mkdir /media/XXX 的命令,这是新建一个文件夹,其中XXX是你想要的名字,可以随便写。有几个需要挂的分区就输几次这样的命令。这里的media目录可以改成你的系统默认挂载Win分区的目录,比如mnt。这样算完成第二步了。 

第三步稍微麻烦一点。打开终端输入 sudo gedit /etc/fstab 打开配置文件。我们可以看到如下图的内容:
           
下面,向其中输入内容:

        /dev/sdaX /media/XXX vfat utf8,umask=000 0  0
/dev/sdaX /media/XXX ntfs uls=utf8,umask=000 0 0 

可 以看出,上一条命令是针对fat32分区的,下一条命令则是针对ntfs分区的。“sdaX”就是第一步中所记录的信 息,X对应分区号,而“/media/XXX”后面的XXX就是是第二步中所创建的文件夹,每个分区对应一条命令,注意分区的格式对应不同的命令。例如, 针对我的电脑的分区,我会向配置文件中加入下面两行内容:

        /dev/sda1 /media/system vfat utf8,umask=000 0  0
/dev/sda5 /media/tools vfat utf8,umask=000 0  0

如下图:
         
请对应自己的系统分区编辑。编辑完成检查没有错误后就可以保存然后关闭编辑器了,完成第三步。
 
      最后一步——重启。重启之后在桌面上或者进入刚刚设定的目录可以看到 Windows 分区已经挂载上了。
 
 
Linux系统攻略 用UUID在Fstab中挂载分区

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实现数据共享一篇)

阅读(851) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~