genfstab

来自 Arch Linux 中文维基

本文或本章节可能需要合并到fstab#Tips and tricks

附注: There is not enough content for a separate article. The genfstab(8) man page provides everything besides the warnings and examples.(在 Talk:Genfstab 中讨论)

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

安装[编辑 | 编辑源代码]

Arch 安装介质中默认包含该程序,也可作为 arch-install-scripts 软件包的一部分安装到已安装的系统中。

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

用法[编辑 | 编辑源代码]

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

$ genfstab /

脚本支持通过内核描述符、设备/分区标签或设备/分区 UUID 查找挂载。默认情况下,它将输出 kernel descriptor( kernel descriptor 为 /dev/xxx),你可以使用 -L, -t PARTLABEL, -U-t PARTUID 分别表示文件系统标签、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 创建该文件,则不要覆盖主安装上的文件。