- Created:
- Updated:
fstab 设置和操作
# <file system> <dir> <type> <options> <dump> <pass>
/dev/hda1 /usr ext4 defaults 1 1
/dev/sda5 swap swap defaults 0 0
非特殊情况,不必在 fstab 中列出
/proc
和/sys
。引导系统会完成相关处理。
选项定义
- <file system> - 定义存储设备文件(例如 /dev/sda1)
- <dir> - 挂载到的位置
- <type> - 定义要挂载的设备或分区的文件系统类型(示例:ext2,ext3,reiserfs,xfs,jfs,smbfs,iso9660,vfat,ntfs,swap和auto)
- <options> - 文件系统的特定选项,一些选项仅与文件系统本身有关
- auto - 引导时或发出命令
mount -a
时自动安装 - noauto - 仅在通知时才挂载文件系统
- exec - 允许该分区上的执行二进制文件(默认)
- noexec - 不允许二进制文件在文件系统上执行
- ro - 挂载文件系统为只读
- rw - 以读写方式挂载文件系统
- sync - I/O 应该同步完成
- async - I/O 应该异步完成
- flush - FAT 的特定选项,可以更频繁地刷新数据,从而使复制对话框或进度条一直保持到磁盘上的内容为止
- user - 允许任何用户安装文件系统(包括 noexec,nosuid,nodev,除非已覆盖)
- nouser - 仅允许 root 挂载文件系统(默认)
- defaults - 默认挂载设置(相当于rw,suid,dev,exec,auto,nouser,async)
- suid - 允许 suid 和 sgid 位的操作
- nosuid - 阻止 suid 和 sgid 位的操作
- noatime - 不更新文件系统上的索引节点访问时间
- nodiratime - 不更新文件系统上的目录 inode 访问时间
- relatime - 更新与修改或更改时间有关的inode访问时间。仅当上次访问时间早于当前修改或更改时间时才更新访问时间(类似于noatime,但不会破坏杂项或其他需要知道自上次修改文件以来是否已读取文件的应用程序)
- auto - 引导时或发出命令
- <dump> - 决定转储实用程序何时进行备份。安装后,dump 会检查条目,并使用数字来确定是否应备份文件系统。可能的输入
0
和1
。如果为0
,则 dump 将忽略文件系统;如果为1
,则 dump 将进行备份。大多数用户将没有安装转储,因此应在 \<dump> 条目中输入0
- <pass> - fsck 读取 <pass> 编号,并确定应按哪个顺序检查文件系统。可能的输入为
0
、1
和2
。根文件系统应具有最高优先级,即1
,要检查的所有其他文件系统应具有2
。<pass> 值为0
的文件系统将不被 fsck 实用程序检查。
file system
可以通过三种不同方式在 /etc/fstab 配置中定义文件系统:通过内核命名描述符,通过UUID或通过标签。使用 UUID 或标签的优点是它们不依赖于磁盘顺序。如果您在 BIOS 中更改存储设备的顺序,切换存储设备的电缆连接,或者因为某些 BIOS 有时可能会更改存储设备的顺序,则 UUID 或标签不会出现问题。
内核命名描述符
通过 fdisk
命令获取内核命名描述符
# fdisk -l
...
Device Boot Start End Blocks Id System
/dev/sda1 * 1 19458 156290016+ 83 Linux
示例
# <file system> <dir> <type> <options> <dump> <pass>
/dev/sda1 / ext4 defaults 1 1
UUIDs
创建文件系统时,UUID 由 make 文件系统实用程序(mkfs.*)生成。blkid
查看已挂载设备和分区的 UUID:
# blkid
/dev/sda1: UUID="6a60524d-061d-454a-bfd1-38989910eccd" TYPE="ext4"
示例
# <file system> <dir> <type> <options> <dump> <pass>
UUID=6a60524d-061d-454a-bfd1-38989910eccd / ext4 defaults 1 1
标签
前提需要给设备或分区进行标记。例如可以通过通用应用程序(例 gparted)标记分区,或者使用 e2label 标记 ext2, ext3 和 ext4 分区。不是所有的文件系统都支持标签(例如 FAT)。标签最多可以包含 16 个字符。标签应该避免冲突。
尝试为设备或分区添加标签之前,不能对其安装。可以从Live(CD/DVD/USB)引导,使用类似 gparted 的应用程序进行标记,或者使用 e2label 对于 ext 分区标记。
# e2label /dev/<disk-or-partition> Debian
示例:
# <file system> <dir> <type> <options> <dump> <pass>
LABEL=Debian / ext4 defaults 1 1
使配置生效
systemd
# systemctl daemon-reload
# systemctl restart remote-fs.target
# systemctl restart local-fs.target