知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

Ubuntu下硬盘的自动挂载

发布时间:2014-09-05 16:51:26作者:知识屋

前段时间重装了系统,伴随而来的是硬盘分区的变化和配置问题。具体来说就是,我使用了Acronis Disk Director Suite软件,将原来安装在ext4下面的Ubuntu给格式化掉了,因为原来的该Ubuntu因为更新内核挂掉了,图形界面不可用,对我来说,目前使用图形界面还是很有必要的。在经历过多次尝试之后,我还是放弃了找回这个Ubuntu,而直接选择了重装,虽然现在有点后悔为何当初使用弱爆的wubi安装,导致现在每次进入启动界面都要先进入windows引导界面选择Ubuntu,再启动grub来选择Ubuntu(导致其实可以在第一个界面中选择Ubuntu,后面一个又选回去Win7)。早知道如此,当初或许会不给自己留退路,直接搞个Ubuntu的硬盘安装算了,少了很多麻烦,而且更省事。(这个在文章:http://www.zhishiwu.com/kf/201110/106716.html中也有所描述,权限的问题还是不好解决,毕竟不是在Linux下面的文件系统下直接进行操作)。



废话说了很多,问题出来了。每次启动后,都要手动选择挂载各个盘,比如fun盘,learn盘,来听听音乐,看看电子书啥的。如果不挂载的话,我的banshee就不能打开列表中的音乐,几回下来很麻烦,为此尝试每次启动后手动挂载变为自动化的过程。

在Google,baidu之后,觉得效果不大理想,主要是说的东西太多,不是我想要的,或者说内容太杂了。于是乎看看说明文档,主要有两个部分,一个是命令mount,另外一个是fstab,分别看了一点之后,开始尝试。
(以下操作最好都在sudo下面进行,否则可能会有权限问题)
现备份文件/etc/fstab,然后编辑该文件。观察样例形式,找到了

 <file system> <mount point>   <type>  <options>       <dump>  <pass>

上面这种说明形式,以及实例中关于proc的例子。


proc            /proc           proc    nodev,noexec,nosuid 0       0

于是乎试着使用自己的方式来改写。sudo fdisk -l查看硬盘信息.
  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        7572    60820168+   7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2            7572       11494    31498240    7  HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/sda3           11494       26506   120588288+   5  Extended
Partition 3 does not end on cylinder boundary.
/dev/sda4           26507       30401    31283280    7  HPFS/NTFS
Partition 4 does not end on cylinder boundary.
/dev/sda5           11494       16715    41943040    7  HPFS/NTFS
/dev/sda6           16716       21937    41943040    7  HPFS/NTFS
/dev/sda7           21937       26506    36700160    7  HPFS/NTFS
然后在逐个挂载分区,看看哪个是对应的learn盘,fun盘,首先在/media下面新建一个文件,比如test,然后执行命令:
sudo mount /dev/sda1 /media/test
通过对挂载之后内容的判断,知道上面的分区分别是哪些盘,然后就好说了。

编辑/etc/fstab文件,在最后面加入我要开机自动挂载的盘的配置信息,如下:
/dev/sda4    /media/Code    ntfs    nodev,noexec,nosuid 0      0    
/dev/sda5     /media/Learn   ntfs    nodev,noexec,nosuid 0      0
/dev/sda6    /media/Fun     ntfs    nodev,noexec,nosuid 0     0
唯一一点需要注意的就是文件类型,这里我的盘都是ntfs类型的,所以通过查看文档知道有该类型(不知道为何开始使用hpfs也是OK的,后面就不行了),在经过几次测试之后,发现出现了类型错误。

信息错误可以有dmesg | tail来查看。

在找到类型错误后,修改位ntfs,即可正确的挂载。

然后挂载的话就直接使用sudo mount /media/Fun ......即可。
当前,注意由于配置文件中有/media/Code......文件夹,所以需要在/media文件夹下面新建相应的文件夹,否则会失败,注意还要是管理员权限。

最后,注销后再次进入,就能够看到自动挂载的盘符了,而且,此时还不能umount掉哦,提示不是root用户。至此,达到了第一个目的了,能够开机自动挂载。
如果想要使用更加个性化的选项和操作,可以查看参考资料,另外,Man文档中有很多有用的信息,看文档是最快,最直接的方式。

如果想要取消挂载的话,直接使用umount命令即可。比如取下挂载fun,则使用命令:sudo umount /media/fun即可。

P.S: 如何挂载ISO文档呢?之前下载了无损音乐,格式是ISO镜像,不想解压,那么如何mount上去呢?
Key:
 sudo mount *.iso /mnt -o loop(将*.iso换成你的那个iso所在的路径即可,另外,也不一定要挂载在mnt目录下面,可以另外新建一个文件夹,类似于前面在media下面新建Fun,Learn等文件夹一样。)

P.S.S: 在终端输入命令之后,如果想在前面加入sudo怎么办?还要移动方向键来选择插入点,多麻烦啊?
Key:
使用Ctrl+A(不管大小写)键即可跳转到第一个字符,从而输入sudo后回车即可。



附参考资料:
我们在linux中常常用mount命令把硬盘分区或者光盘挂载到文件系统中。/etc/fstab就是在开机引导的时候自动挂载到linux的文件系统。

在linux中/etc/fstab的数据项如下所示:

/dev/device   mountpoint   type   rules   dump   order

设备名称        挂载点          分区类型   挂载选项     dump选项    fsck选项

例如这是一个普通的/etc/fstab:

/dev/hda2     /                    ext3        defaults   0 1

/dev/hda3     swap             swap      defaults   0 0

/dev/hda5     /usr               ext3        defaults   0 0

/dev/fdo        /mnt/flopy     ext3        noauto     0 0

/dev/cdrom    /mnt/cdrom   iso9660  noauto,ro 0 0

(1)设备名称
/dev/device就是需要挂载的设备,/hda2就是第一个IDE插槽上的主硬盘的第二个分区。如果是第二个IDE插槽主硬盘的第三个分区,那就是/dev/hdc3,具体可以在linux下使用fdisk -l  查看。

(2)挂载点
mountpoint 就是挂载点。/、 /usr、 swap 都是系统安装时分区的默认挂载点。
如果你要挂载一个新设备,你就要好好想想了,因为这个新设备将作为文件系统永久的一部分,需要根据FSSTND(文件系统标准),以及它的作用,用户需求来决定。比如你想把它做为一个共享资源,放在/home下面就是一个不错选择。

(3)分区类型
type 是指文件系统类型,下面列举几个常用的:

Linux file systems: ext2, ext3, jfs, reiserfs, reiser4, xfs, swap.
Windows:
vfat = FAT 32, FAT 16
ntfs= NTFS
Note: For NTFS rw ntfs-3g
CD/DVD/iso: iso9660
Network file systems:
nfs: server:/shared_directory /mnt/nfs nfs <options> 0 0
smb: //win_box/shared_folder /mnt/samba smbfs rw,credentials=/home/user_name/winbox-credentials.txt 0 0
auto: The file system type (ext3, iso9660, etc) it detected automatically. Usually works. Used for removable devices (CD/DVD, Floppy drives, or USB/Flash drives) as the file system may vary on thesedevices.

(4)挂载选项
rules 是指挂载时的规则。下面列举几个常用的:
auto 开机自动挂载
default 按照大多数永久文件系统的缺省值设置挂载定义
noauto 开机不自动挂载
nouser 只有超级用户可以挂载
ro 按只读权限挂载
rw 按可读可写权限挂载
user 任何用户都可以挂载
请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto

(5)dump选项
这一项为0,就表示从不备份。如果上次用dump备份,将显示备份至今的天数。

(6)fsck选项
order 指fsck(启动时fsck检查的顺序)。为0就表示不检查,(/)分区永远都是1,其它的分区只能从2开始,当数字相同就同时检查(但不能有两1)。

如果我要把第二个IDE插槽主硬盘上的windows C 区挂到文件系统中,那么数据项是:

/dev/hdc1 /c vfat defaults 0 0

(/c 是事先建立的文件夹,作为c盘的挂载点。)

当你修改了/etc/fstab后,一定要重新引导系统才会有效。

fstab中存放了与分区有关的重要信息,其中每一行为一个分区记录,每一行又可分为六个部份,下面以/dev/hda7 / ext2 defaults 1 1为例逐个说明:

1. 第一项是您想要mount的储存装置的实体位置,如hdb或如上例的/dev/hda7。

2. 第二项就是您想要将其加入至哪个目录位置,如/home或如上例的/,这其实就是在安装时提示的挂入点。

3. 第三项就是所谓的local filesystem,其包含了以下格式:如ext、ext2、msdos、iso9660、nfs、swap等,或如上例的ext2,可以参见/prco/filesystems说明。

4. 第四项就是您mount时,所要设定的状态,如ro(只读)或如上例的defaults(包括了其它参数如rw、suid、exec、auto、nouser、async),可以参见「mount nfs」。

5. 第五项是提供DUMP功能,在系统DUMP时是否需要BACKUP的标志位,其内定值是0。

6. 第六项是设定此filesystem是否要在开机时做check的动作,除了root的filesystem其必要的check为1之外,其它皆可视需要设定,内定值是0。



参考链接:
1.http://www.zhishiwu.com/kf/201110/106716.html
2.http://www.zhishiwu.com/os/201110/106719.html
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜