一、需求说明
使用parted命令完成磁盘分区后会有如下提示。意思就是我们新增了磁盘分区,提醒我们需要更新/etc/fstab文件。Linux系统都是各磁盘或者分区是通过挂载的方式访问的,临时使用的U盘、光盘等我们可以使用mount命令临时挂载,如果是系统固定的磁盘则需要我们将磁盘挂载写入/etc/fstab文件,实现开机自动挂载。我们可以通过查看/etc/fastab文件了解磁盘挂载信息,也可以通过编辑该文件更新、修改磁盘挂载信息。
二、/etc/fstab文件说明
1、文件样例
fstab文件内容样式如下,#开头的行是该文件的说明,其他行是开机自动挂载的配置内容,每一行包括设备标识、挂载点、文件系统类型、挂载参数、是否dump、检查顺序六项内容。
2、六列字段说明
如果我们需要了解/etc/fstab文件各列字段的说明可以使用man fstab查看并获取帮助。
序号 | 列名 | 说明 |
---|---|---|
1 | fs_spec | 此列表示要安装的块特殊设备或远程文件系统 |
2 | fs_file | 此列表示存储挂载点 |
3 | fs_vfstype | 此列表示挂载的文件系统类型 |
4 | fs_mntops | 文件系统挂载参数 |
5 | fs_freq | 是否转储dump,未配置则默认为0, |
6 | fs_passno | fsck程序使用此字段来确定在重新启动时执行文件系统检查的顺序。0表示不检查;1表示第一位检查,一般用于根挂载点,其他磁盘配置参数2。 |
3、fs_spec字段说明
fs_spec字段我们可以使用设备文件名、UUID或者标签,也可以是NFS等远程文件系统。远程文件系统配置方式是<host>:<dir>,与直接使用mount命令挂载远程文件系统是一致的。其中UUID和LABEL配置方式是LABEL=<label> 或者 UUID=<uuid>。设备文件、UUID、label作为标识的不同:
- 使用设备文件名会在当前生效,可能在系统重启之后会出现问题;
- label在系统重启之后也会生效,但是要实时注意该设备的label,label是我们在磁盘分区的时候设置的标签;
- UUID是分区的唯一标识。
建议使用UUID的方式挂载。我们可以使用blkid命令查看UUID,可以使用命令ls -l /dev/disk/by-label/查看label。如果磁盘或者分区都没有配置标签,by-label文件可能并不存在。
4、fs_file字段说明
fs_file字段就是我们需要挂载的位置,如果是swap则写swap,其他的写具体的文件系统路径。
5、fs_vfstype字段说明
文件系统类型字段指的是我们需要挂载的文件系统类型,支持的很多ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs等,只要是mount命令支持的都可以。linux系统现在常用的是ext4和xfs,也支持window文件系统ntfs、vfat等,如果是交换区,则设置为swap。
6、fs_mntops字段说明
fs_mntops表示挂载时的参数选项,各参数说明如下,我们常用defaults。
- defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async
- auto - 在启动时或键入了 mount -a 命令时自动挂载。
- noauto - 只在你的命令下被挂载。
- exec - 允许执行此分区的二进制文件。
- noexec - 不允许执行此文件系统上的二进制文件。
- ro - 以只读模式挂载文件系统。
- rw - 以读写模式挂载文件系统。
- user - 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec, nosuid, nodev 参数。
- users - 允许所有 users 组中的用户挂载文件系统.
- nouser - 只能被 root 挂载。
- owner - 允许设备所有者挂载.
- sync - I/O 同步进行。
- async - I/O 异步进行。
- dev - 解析文件系统上的块特殊设备。
- nodev - 不解析文件系统上的块特殊设备。
- suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
- nosuid - 禁止 suid 操作和设定 sgid 位。
- noatime - 不更新文件系统上 inode 访问记录,可以提升性能。
- nodiratime - 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
- relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能。
- flush - vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
7、fs_freq字段说明
dump命令将此字段用于这些文件系统,以确定需要转储哪些文件系统。字段可以设置为0或者1,如果第五个字段不存在,返回零值,dump将假设不需要转储文件系统。
8、fs_passno字段说明
fsck程序使用此字段来确定在重新启动时执行文件系统检查的顺序。该字段值可以设置为0|1|2,根文件系统的fs_passno应为1,其他文件系统的fs_passno应为2。将按顺序检查驱动器内的文件系统,但同时检查不同驱动器上的文件系统,以利用硬件中可用的并行性。如果第六个字段不存在或不为零,则返回零值,fsck将假设不需要检查文件系统。
三、/etc/fstab配置实践
1、配置文件检查
我们可以使用命令mount -a命令检查配置文件是否有错误,可以检查出UUID错误、挂载点不存在等错误。如果/etc/fstab配置文件错误可能导致开机启动失败。
[root@s153 ~]# mount -a
mount: /etc/fstab:解析出错:忽略第 11 行的记录。
mount: 找不到 UUID=9d3b68d5-d0e7-4a53-8f97-05e57fafc427
mount: 挂载点 /red0 不存在
2、dump配置实践
dump配置只针对ext2/3/4文件系统类型有效,为了满足测试需求,我们新挂载一块ext4磁盘,另外centos7默认dump命令没有安装,我们需要手动安装dump命令。
- 安装dump命令
[root@s142 ~]# yum install -y dump
- 新挂载一块ext4类型磁盘
- 设置转储,1表示每天dump转储
- 重启系统
- 查看最新转储任务记录
3、配置samba共享存储开机自动挂载
挂载有用户验证的samba共享存储磁盘开机自动挂载,我们需要在/etc/fstab配置文件中配置远程连接的用户、密码;也需要指定挂载磁盘的用户归属,当然如果没有指定uid、gid则默认属于root用户,这个时候普通用户进行读写操作会出现权限问题。windows系统samba共享服务,文件系统类型为cifs;linux环境可以使用id命令查看当前用户的uid、gid。
- 编辑/etc/fstab配置文件
[root@s152 ~]# cat /etc/fstab |grep -Ev “^#|^$”
…
//192.168.0.8/scans /home/wuhs/test cifs username=wuhsh,password=Wuhs@0403,uid=1000,gid=1000 0 0
- 使用mount -a命令检查挂载参数语法是否正确
[root@s152 ~]# mount -a