灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3920回复:0

一天一点学习Linux之文件系统的开机挂载

楼主#
更多 发布于:2011-10-27 16:21

昨天,我们介绍的都是手动执行命令来实现挂载,如果你常常需要挂载某些文件系统,那么我如何让系统在启动时就自动挂载,应该怎样做呢?下面介绍两种方法:
方法1.
把挂载的命令放在/etc/rc.d/rc.local中。
这个虽然是一种方法,但不建议这么做,因为我们的系统中有统一规划的解决方案,所以建议用第二种方法。
 

方法2.
修改配置文件/etc/fstab,这个文件就是设置在启动时加挂的文件系统,下面我们就一起来研究一下/etc/fstab
[root@yufei ~]# cat /etc/fstab
此处省略多行无用信息
UUID=8e4f6141-20f9-4f5a-aad4-bac048374152 /                       ext4    defaults        1 1
UUID=c70cd6a4-09cd-4aea-ba94-f3641df4e981 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
这个内容和您的系统有关系,最上面两行的是我们磁盘文件系统,而后面的四行是虚拟文件系统,我们不关心这个。

这个文件里面分成六个字段。这六个字段是很重要的,所以我们要带大家一起来认识一下。

第一栏:磁盘设备的文件名或设备的卷标或者是设备的UUID。#关于这些信息的查询可以通过tune2fs 或者是dumpe2fs来查询。

[root@yufei ~]# tune2fs -l /dev/sdb1 |more
[root@yufei ~]# dumpe2fs /dev/sdb1 |more
只显示有用信息
Filesystem volume name:   opsers_tech
Last mounted on:          /mnt
Filesystem UUID:          994ae2b7-d28a-4f7c-9464-c1763860378b
所以这一栏可以有下面三种表示方法,效果都是一样的,都是表示的是同一个设备。
/dev/sdb1
LABEL=opsers_tech
UUID=994ae2b7-d28a-4f7c-9464-c1763860378b
第二栏:挂载点。#强烈建议用一个空目录

第三栏:文件系统类型。#在手动挂载时可以让系统自动测试挂载,但在这个文件中必须要手动写入文件系统的类型。文件系统类型主要有:ext3、ext4、vfat、ntfs、nfs、smbfs、swap等等。

第四栏:文件系统参数。#这个和我们前面介绍的mount是一样的,在这里再做一个简单的介绍,因为这个很重要。

async/sync 异步/同步:设定磁盘的运作方式,预设为async(效能较佳),是把内容写入日志,然后保存到磁盘。

auto/noauto 自动/非自动:当下达mount -a 时,此文件系统是否会被主动测试挂载。预设为auto。

rw/ro 读写/只读:如果你想要分享的数据是不给用户随意变更的,就可以设置成ro的,无论在此文件系统的文件是否有w 权限,都是无法写入内容。

exec/noexec 可被执行/不可被执行:限制在此文件系统内是否可以进行执行的操作,如果此文件系统是纯粹用来储存资料的,那么可以设定为noexec 会比较安全。

user/nouser 允许/不允许其他用户挂载:正常情况下,系统为了安全,不希望一般身份的用户能使用mount命令的,因为太不安全了,默认是设定为nouser。

suid/nosuid 具有/不具有suid权限:该文件系统是否允许SUID的存在。因为这个也和系统的安全相关。如果不是执行文件存放的目录,可以设定为nosuid来取消这个功能。

usrquota 注意不要拼错了。这个是在启动文件系统的时候,让其支持磁盘配额,这个是针对用户的。

grpquota 和上面一样,支持用户组的磁盘配额。

defaults 同时具有rw, suid, dev, exec, acl, async参数。

而我们基本上预设使用defaults即可。

第五栏:能否被dump备份指令使用。#dump是一个用来备份的命令,我们可以通过fstab指定哪个文件系统必须要进行dump备份。0代表不要做dump备份,1代表要每天进行dump的动作,2也代表其他不定日期的dump备份。通常这个数值不是0就是1。

第六栏:是否用fsck 检验扇区:#开机的过程中,系统默认会用fsck检验文件系统是否完整。不过,某些文件系统是不需要检验的,例如swap以及特殊文件系统/proc、/sys等等。0是不要检验,1表示最先检验(一般只有根目录会设定为1),2也是要检验,只是1是最先,2是其次才进行检验。这一项只针对操作系统的分区有效果,其他的文件系统根据需要来设置,因为他不影响系统的引导。

特别提醒1:因为/etc/fstab这个文件和系统启动有很大的关系,如果你一不小心,把里面的内容写错了,可能导致系统无法启动。为了防止这个问题的发现,当你增加了相应的挂载内容后,最好用

mount -a命令进行一下测试,在没有错误的情况,才能保证下次在系统启动的时候是正常的。

特别提醒2:如果我在此文件中修改了相应的挂载参数的话,你需要用mount -o remount来重新使新的参数生效。而mount -a则是加载不了已经挂载了文件系统的参数信息。可以用mount命令查看到参数的信息。
最后我们把昨天格式化出来的分区写到/etc/fstab文件中。在开始编辑文件前,我再给大家介绍一个很实用的工具blkid,他会显示出系统中所有的文件系统的信息,包括设备名、卷标、UUID以及文件系统类型。下面的看效果



[root@yufei ~]# blkid
/dev/sda1: UUID="8e4f6141-20f9-4f5a-aad4-bac048374152" TYPE="ext4"
/dev/sda2: UUID="c70cd6a4-09cd-4aea-ba94-f3641df4e981" TYPE="swap"
/dev/sdb1: LABEL="opsers_tech" UUID="994ae2b7-d28a-4f7c-9464-c1763860378b" TYPE="ext4"
/dev/sdb2: SEC_TYPE="msdos" UUID="7F29-8A7A" TYPE="vfat"

[root@yufei ~]# vim /etc/fstab
/dev/sdb1               /mnt                    ext4    defaults        0 0
UUID=7F29-8A7A          /test                   vfat    defaults        0 0

[root@yufei ~]# mount -a
[root@yufei ~]# mount -a
没有错误提示,说明我们的配置是没有错误的,那么在下次系统启动后就不会有错误了,而导致系统启动不了。

启动系统后,用df -T来查看挂载在系统中的磁盘信息情况



[root@yufei ~]# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda1     ext4    15118728   6980432   7370296  49% /
tmpfs        tmpfs      255784         0    255784   0% /dev/shm
/dev/sdb1     ext4     1033560     40980    939568   5% /mnt
/dev/sdb2     vfat      409424         0    409424   0% /test
用mount命令可以查看系统中的挂载情况

[root@yufei ~]# mount
/dev/sda1 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sdb1 on /mnt type ext4 (rw)
/dev/sdb2 on /test type vfat (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/etc/fstab 是开机时的配置文件,实际上文件系统的挂载是记录在/etc/mtab 与/proc/mounts 这两个文件中的。如果万一在/etc/fstab中写入的数据错误时候,会导致无法顺利开机成功,而进入单人维护模式,而这时候/ 是只读的状态,要想修改/etc/fstab,就要用到下面这个常用的系统修复命令了。

mount -o remount,rw /

喜欢0 评分0
游客

返回顶部