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。
更常见的使用情况是为 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 创建该文件,则不要覆盖主安装上的文件。