使用 UUID 的真正好处是什么?

使用 UUID 的真正好处是什么?

我经常看到人们讨论在硬盘中使用 UUID 而不是/dev/sdN

使用 UUID 的真正好处是什么?它更快、更可靠、更容易记住吗(哈哈,不是吗),还是其他什么?

而且,难道不能更改 UUID 吗?有没有办法识别永远不会改变的驱动器(尤其是在 GRUB 中)?

答案1

使用 UUID 的真正好处是什么?

通常,无论连接到什么系统,同一驱动器/分区的 UUID 都是恒定的。

命名方案会为每个插入的设备(a、b、c、d 等)/dev/sdN增加最后一个字母 ( )。这意味着,如果以不同的顺序连接设备,分配给设备的标识符会发生变化。N/dev/sd

而且,不能更改 UUID 吗?

是的,看这里

有没有办法可以识别永远不会改变的驱动器(尤其是在 GRUB 中)?

这就是 UUID 的用途。它们可能是您能获得的最稳定的解决方案。


在脚本等中使用 UUID

如果你被指示执行如下命令:

dd if=/dev/sda of=/dev/null 

...您可以/dev/sda用文件替换/dev/disk/by-uuid/,以通过 UUID 而不是 来引用磁盘sdN

sdN运行以下命令来获取系统上驱动器的UUID(和符号):

for disk in /dev/disk/by-uuid/*; do
    readlink -e "$disk"
    echo "${disk#/dev/disk/by-uuid/}"
    echo
done

答案2

它之所以重要是因为数字可能会改变,而且有时会改变。如果您以某种方式更改分区表,通常会发生这种情况。例如,您可能有 2 个分区:sda1 和 sda2,后来您删除了 sda1 并将其分成两个单独的分区。通常fdisk不会更改 sda2 的数字,但其他一些工具(gparted我相信)会更改,因此现在您的 sda2 变成了 sda3,但它仍具有相同的 UUID。

如果不改变实际分区,UUID 就不可能改变,如果你这样做,那么就真的不清楚你是否还想挂载新创建的分区。

答案3

使用 UUID 的真正好处是什么?它更快、更可靠、更容易记住吗(哈哈,不是吗),还是其他什么?

这是一个现实生活中的例子/dev/XXX为什么在安装时应该使用 UUID 而不是fstab。 (是的,它更可靠,因为当链中的驱动器出故障时 UUID 不会改变。)

另一个众所周知的 UUID 实用场景是启动时识别要在 GRUB 中启动的设备。因为如果没有 UUID,驱动器编号方案将依赖于 BIOS 启动顺序,而更改 BIOS 中的启动顺序可能会导致问题。(假设您从 SATA 驱动器启动,然后插入 ATA 驱动器并将启动顺序更改为首先启动 ATA。之后,您从 ATA 驱动器(现在不可启动)启动,但不恢复启动顺序。您的 BIOS 将启动 SATA 驱动器,因为 ATA 驱动器不可启动,但如果您不使用 UUID,GRUB 现在很可能找不到您的驱动器。)GRUB 手册里也有写这里

而且,不能更改 UUID 吗?

是的,您可以更改 UUID,但这不会违背 UUID 的用途。UUID 的用途是无论机器的设置如何或您将驱动器插入何处,在重新启动和跨机器时都保持不变。其用途不是为您的驱动器提供一个在其使用寿命内不可更改的名称。

有没有办法可以识别永远不会改变的驱动器(尤其是在 GRUB 中)?

从技术上来说,有些驱动器可以通过一种永远不会改变的方式来识别它们,因为驱动器有一个全球名称和/或序列号。通常这些值是不可更改的,并且它们是驱动器独有的。(从技术上讲,这些值也可能被更改。)您可以使用例如查看有关驱动器的此类信息sudo hdparm -I /dev/sda。(批量生产的廉价或不便宜的 USB 闪存盘/存储卡可能并不总是具有此类标识。)

但这些唯一标识符适用于驾驶对于操作系统和你来说,更重要的是分割,这就是 UUID 的用途。由于驱动器上的分区是可变的,因此 UUID 当然也是可变的。

相关内容