genfstab

出自 ArchWiki

此条目或章节可能需要与fstab#技巧与诀窍合并

注意: 没有足够的内容来单独成文。genfstab(8) 手册页提供了除警告和示例之外的所有内容。(在Talk:Genfstab中讨论)

genfstab 是一个 Bash 脚本,用于自动检测给定挂载点下的所有挂载,其输出可以重定向到一个文件,通常是 /etc/fstab

安装

默认情况下,它存在于 Arch 安装介质上,并且可以作为 arch-install-scripts 软件包的一部分安装在已安装的系统上。

还有一个此工具的独立分支,可以在其他发行版上使用,您可以在这里找到它。

用法

您可以使用以下命令获取当前挂载列表

$ 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 文件。