使用 UUID 或 PARTUUID 通过 fstab 自动挂载 HDD 是否更好?

Seb*_*ebr 4 partitioning fstab mount automount uuid

我正在尝试按照Akshit 的终端指南将外部硬盘设置为在启动时自动挂载。

我最初使用的是 `/etc/fastab' 中的 PARTUUID 而不是 UUID:

UUID=191486e0-6049-46aa-973c-425d317b629a /mnt/nas exfat uid=1000,gid=1000,umask=0022,auto,rw 0 0

当我运行findmnt --verify --verbose时,这给了我一个错误,我重新检查blkid并注意到我一直在使用分区 ID:

/dev/sdb1: LABEL="My Book" UUID="20C9-C659" TYPE="exfat" PTTYPE="atari" PARTLABEL="My Book" PARTUUID="191486e0-6049-46aa-973c-425d317b629a"

所以我在 fstab 中添加了实际的 UUID,但现在我不确定我是否应该使用它,或者我是否应该使用 PARTUUID,以及为什么我的 UUID 比我见过的其他示例短得多(特别是当“ UUID 保证是唯一的。据我所知,在宇宙的生命周期内不会发生碰撞”)。

Rav*_*ina 6

当我运行 findmnt --verify --verbose 时,这给了我一个错误

在另一个答案中已经提到过 - 你必须使用PARTUUID=.

详细信息:如何在 fstab 中使用 PARTUUID?

现在我不确定是否应该使用它,或者是否应该使用 PARTUUID?

在你的情况下,这并不重要。但请记住,如果您使用的是 MBR,则与 GPT 分区的常规 PARTUUID 不同,如果分区号发生变化,MBR 的伪 PARTUUID 也会发生变化。[1]

为什么我的 UUID 比我见过的其他示例短得多?

实际的 UUID 应该是 128 位长并且是唯一的。在此之前,各种系统提供了各种不同大小的序列号以供区分。因此,Linux 只会获取它能找到的任何序列号,并将它们粘贴到 /dev/by-uuid/ 目录中,即使它们与 UUID 定义不匹配。[2]


作为个人偏好,我宁愿使用 UUID - 即使我正在创建加密交换分区。此外,LVM 之类的东西没有 PARTUUID。您可能知道fstab代表文件系统表。所以我想最好使用UUID,因为它与文件系统有关。使用 UUID 并不奇怪,除非由于特定原因必须使用其他方法。


我还在 ArchLinux 论坛上找到了一个值得一读的好答案:PARTUUID 而不是 fstab 中的 UUID,优点/缺点?。以下是答案中的一些引用:

PARTUUID 标识一个分区。如果您决定将该分区用于其他用途(对其进行格式化),即使内容不再存在,它仍然会被识别,并且它可能会安装到错误的位置。

如果您的分区表有问题,并且您最终重新创建相同的分区(具有不同的partuuid),则即使内容仍然存在,也将不再被识别。

只有分区有 PARTUUID,其他块设备没有它们

通过 PARTUUID 挂载无需 initramfs,因此如果您想创建一个无 initrd 的系统,这将是一个优势。

UUID 通过内容标识文件系统。如果找到 UUID,则文件系统就在那里。无论是整个块设备、分区、raid、luks 还是 lvm,都没有关系。UUID 适用于所有层,PARTUUID 仅适用于分区。

一般来说,fstab 条目是关于将特定内容安装到特定位置的,因此通过内容而不是分区进行识别更自然。使用 UUID 更为常见。

UUID 的缺点是您必须扫描所有设备的内容才能找到它们。毕竟 UUID 可以在任何地方。使用 PARTUUID,您只需检查分区表,因此更容易/性能更高。但你需要大量的块设备才能发挥作用。


van*_*ium 5

如果您使用 PARTUID,则需要fstab通过在行开头PARTUUID=而不是来指示UUID。在您给出的示例中,系统查找 UUID,而不是 PARTUID,并且确实没有找到合适的。

替换UUID=PARTUUID=,你应该很高兴。

这两个UUIDPARTUUID意图是唯一的标识符,一个相关的文件系统,因此在改变,当你重新格式化分区,其他的分区,所以与分区本身相关的(不会当你重新更改)。使用一个比另一个更好吗?没关系。当您自己在 中安装驱动器时fstab,您需要清楚地了解您安装的内容,并且在该级别,使用一个或另一个唯一标识符并不重要。