《Ubuntu — /etc/fstab文件的功能》
1./etc/fstab文件的作用
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。
系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
最好使用硬盘的uuid来进行挂载,而不是通过/dev/sda1这样分区挂载。如果是针对一整个硬盘进行挂载的话。因为通过分区挂载当分区改变,就会出现挂载不上的情况。(uuid通过bikid命令查看)
fdisk -l
查看硬盘。
blkid
发现并没有硬盘的uuid。
mkfs.ext4 -m 0 /dev/sda
格式化硬盘后再查看uuid。
这样就可以看到uuid了。
2.挂载的限制
1、根目录是必须挂载的,而且一定要先于其他mount point被挂载。因为mount是所有目录的跟目录,其他木有都是由根目录 /衍生出来的。
2、挂载点必须是已经存在的目录。
3、挂载点的指定可以任意,但必须遵守必要的系统目录架构原则
4、所有挂载点在同一时间只能被挂载一次
5、所有分区在同一时间只能挂在一次
6、若进行卸载,必须将工作目录退出挂载点(及其子目录)之外。
3./etc/fstab文件中的参数
分析一下几个参数:
<file system>:你要挂载的文件系统的设备名称的信息,也可以是远程的文件系统。如果是本地设备,可以写 /dev/sda1, /dev/sda5 等。如果是远程的文件系统,可以写 192.168.10.36:/home/。此外,还可以用卷标(label)或 UUID(Universally Unique Identify 全局唯一标识)来表示。默认的 /etc/fstab 就是采用 UUID 来表示的,这里也不详解了。
<mount point>: 挂载点,也就是自己找一个或创建一个目录,然后把文件系统<file system> 挂到这个目录下,然后就可以从这个目录中访问要挂载的文件系统。对于 swap 分区,这个域应该填写 none,表示没有挂载点。
<type>: 这里用来指定文件系统的类型。
<options>: 这里用来填写设置选项,各个选项用逗号隔开。有个非常重要的关键字需要了解一下:defaults,它代表包含了选项 rw, suid, dev, exec, auto, nouser 和 async。
auto: 开机自动挂载
noauto: 开机不自动挂载
defaults: 按照大多数永久文件系统的缺省值设置挂载定义
ro: 按只读权限挂载
rw: 按可读可写权限挂载
user: 任何用户都可以挂载
user: 同步磁盘与内存中的数据,async 则是异步
注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是 noauto。
<dump>: 此处为 1 的话,表示要将整个 <fie sysytem> 里的内容备份;现在很少用到 dump 这个工具,在这里一般选 0。 0 表示不做 dump 备份,1 表示要进行 dump 备份,2 也表示要做 dump 备份,不过,该分区的重要行比 1 小。
<pass>: 这里用来指定如何使用 fsck 来检查硬盘。如果这里填 0,则不检查;挂载点为 / 的(即根分区),必须在这里填写 1,其它的都不能填写 1。如果有分区填写大于 1 的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字的同时检查。比如第一和第二个分区填写 2,第三和第四个分区填写 3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个分区。
当编辑了 /etc/fstab 后,为了避免可能的错误,通常回使用 mount -a 命令来测试,这是很重要的测试!
4.相关命令
blkid
在Linux下可以使用blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。