跳转至内容

genfstab

来自 ArchWiki

本文或本节可能需要与 fstab#Tips and tricks 合并。

注意:内容不足以独立成文。 genfstab(8) 手册页包含了除警告和示例以外的所有内容。(在 Talk: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。

警告 块设备的内核名称描述符不是持久的,并且每次启动时都可能发生变化,不应在配置文件(包括 /etc/fstab)中使用。

更常见的用法场景是为 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 文件,那么你不想覆盖你主安装系统上的那个。