genfstab
genfstab 是一个 Bash 脚本,用于自动检测给定挂载点下的所有挂载,其输出可以重定向到一个文件,通常是 /etc/fstab
。
安装
默认情况下,它存在于 Arch 安装介质上,并且可以作为 arch-install-scripts 软件包的一部分安装在已安装的系统上。
还有一个此工具的独立分支,可以在其他发行版上使用,您可以在这里找到它。
用法
您可以使用以下命令获取当前挂载列表
$ 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 文件。