概述
在访问 Linux 系统中的目录之前,必须将这个目录挂载到一个已经格式化为某个可读文件系统的分区上。而 Linux 利用 /etc/fstab
配置文件自动完成这个过程。当 Linux 处于引导过程中时,系统利用 mount
命令把定义在 /etc/fstab
文件中的目录挂载到已配置的卷上。
下面就是我的某一台机器上的 /etc/fstab
文件的内容:
[root@liqiang.io]# cat /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
UUID=452d2b56-e6b0-4833-a5a3-9ff073ed7887 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0
文件解析
设备名称 | 挂载点 | 文件系统 | 挂载选项 | DUMP 选项 | 文件系统检查选项 |
---|---|---|---|---|---|
/dev/mapper/centos-root | / | xfs | defaults | 0 | 0 |
UUID=452d2b56-e6b0-4833-a5a3-9ff073ed7887 | /boot | xfs | defaults | 0 | 0 |
/dev/mapper/centos-home | /home | xfs | defaults | 0 | 0 |
/dev/mapper/centos-swap | swap | swap | defaults | 0 |
可以看到有的时一个路径名,而有的设备时一个 UUID,使用 UUID 的好处就是稳定,即使是重新启动或者插拔盘之类的操作,或者因为系统启动读取顺序的不同都不会导致 UUID 的改变;而使用类似于 /dev/sda1
这样的分区名就不一定的,这是受系统和硬件变更的影响的。
挂载点为 swap
对于 swap 类型,Mount Point 不是必须的,甚至可以为 none
。
文件系统列表
在我使用的 CentOS 下,默认支持的文件系统为:
文件系统 | 文件系统 | 文件系统 | 文件系统 | 文件系统 | 文件系统 | 文件系统 |
---|---|---|---|---|---|---|
adfs | affs | autofs | cifs | coda | coherent | cramfs |
debugfs | devpts | efs | ext | ext2 | ext3 | ext4 |
hfs | hfsplus | hpfs | iso9660 | jfs | minix | msdos |
ncpfs | nfs | nfs4 | ntfs | proc | qnx4 | ramfs |
reiserfs | romfs | squashfs | smbfs | sysv | tmpfs | ubifs |
udf | ufs | umsdos | usbfs | vfat | xenix | xfs |
xiafs |
最常用的几个
VFS | 描述 |
---|---|
tmpfs | 一个虚拟内存文件系统,使用 RAM 和交换空间 |
devpts | 与伪终端设备有关 |
sysfs | 提供系统设备的动态信息(/sys |
proc | 提供了用来控制内核行为的动态可配置选项 |
cgroups | 与 Linux 内核的控制组功能有关,允许为进程或一组进程的系统资源使用设置限制 |
挂载选项 default 的含义
default 在我使用的 CentOS 中的含义为:rw, suid, dev, exec, auto, nouser, and async.
选项 | 含义 | 描述 |
---|---|---|
rw |
Mount the filesystem read-write | 还可以是 ro :Mount the filesystem read-only |
suid |
允许在此文件系统的程序上使用 setuid 和 setgid |
|
dev |
对访问终端或控制台等字符型设备和硬盘驱动器等块设备的访问权限 | |
exec |
允许在此文件系统中运行二进制文件 | |
auto |
可以使用 mount -a 命令挂载 |
|
nouser |
只允许 root 用户挂载指定的文件系统 | |
async |
此文件系统上的所有 I/O 采用异步方式 |
小结
其实 /etc/fstab
可以认为是 mount 命令,只不过是这个文件中的配置是系统启动过程中,自动挂载上去的,当然,可以通过设置:noauto
选项来阻止系统自动挂载。
如果修改了 /etc/fstab
想不重启就生效,可以通过 mount -a
命令执行,但是,要注意,这个同样受 noauto
选项的影响。