genfstab - Arch Linux 中文维基

跳转到内容

# 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 中讨论）

相关文章

- fstab
- 块设备持久化命名
- 文件系统

翻译状态：

- 本文（或部分内容）译自 Genfstab，最近一次同步于 2024-7-30，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

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 创建该文件，则不要覆盖主安装上的文件。

## 参见

- genfstab(8)

分类：​

- 文件系统
- 安装过程

隐藏分类：​

- 使用“模板:合并”标记的页面或章节

genfstab
添加话题