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