出自 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 創建該文件,則不要覆蓋主安裝上的文件。