genfstab
外观
genfstab(8) 是一个 Bash 脚本,用于自动检测给定挂载点下的所有挂载,然后将其输出重定向到一个文件,通常是 /etc/fstab。
安装
它默认包含在 Arch 安装介质中,也可以作为 arch-install-scripts 包的一部分,在已安装的系统上进行安装。
还有一个独立的该工具的 fork 版本,可以在其他发行版上使用,你可以在 这里找到它。
用法
你可以通过以下方式获取当前挂载列表:
$ genfstab /
该脚本支持按内核描述符、设备/分区标签或设备/分区 UUID 查找挂载。默认情况下,它会输出 内核描述符(内核描述符为 /dev/xxx),你可以分别使用 -L、-t PARTLABEL、-U 或 -t PARTUUID 来指定文件系统标签、GPT 分区标签、文件系统 UUID 或 GPT 分区 UUID。
更常见的用法场景是为 chroot 获取一个 fstab 文件,这可以通过以下方式实现:
# mount /dev/sda3 /mnt # mount --mkdir /dev/sda1 /mnt/efi
$ genfstab -U /mnt
# /dev/sda3 UUID=185aebd2-ce76-47dd-baf4-5ad0a80fa963 / ext4 rw,noatime 0 1 # /dev/sda1 UUID=E5C7-6DD7 /efi vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
在这种情况下,genfstab 会显示挂载点 /mnt 下方的所有挂载,并按设备 UUID 列出它们。
提示 请注意,我们虽然将设备
sda3 挂载到了 /mnt,但 genfstab 将其显示为主根挂载点 /,这是因为它将给定的挂载点视为根挂载。通常,你会想将输出重定向到一个文件,这可以通过以下方式实现:
# genfstab -U /mnt >> /mnt/etc/fstab
警告
- 在覆盖现有的 fstab 文件之前,请务必备份它。
- 注意保存 fstab 文件的位置,例如,如果你想为 chroot 创建一个 fstab 文件,那么你不想覆盖你主安装系统上的那个。