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

我一直看到人们讨论在硬盘驱动器中使用UUID而不是/dev/sdN

使用UUID的真正好处是什么? 它更快,更可靠,更容易记住(哈哈没有),什么?

并且,是否可以更改UUID? 有没有办法识别永远不会改变的驱动器(特别是在GRUB中)?

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

通常,UUID对于相同的驱动器/分区是恒定的,无论它被连接到什么系统。

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

并且,是否可以更改UUID?

是的, 请看这里 。

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

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


在脚本等中使用UUID

如果要求您执行如下命令:

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

…你可以用/dev/sda /dev/disk/by-uuid/的文件替换/dev/sda来通过UUID而不是sdN来引用磁盘。

运行以下命令以获取系统上的驱动器的UUID(和sdN表示法):

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

它变得很重要,因为数字可以,有时甚至会改变。 如果以某种方式更改分区表,通常会发生这种情况。 例如,你可能有2个分区:sda1和sda2,你稍后删除sda1并从中分出两个独立的分区。 通常fdisk不会改变sda2的数量,但是其他一些工具( gparted我相信)会,所以现在你的sda2变成了sda3,但它仍然会有相同的UUID。

在不改变实际分区的情况下UUID是不可能改变的,如果你这样做,那么你是否还想安装新创建的分区真的不清楚。

使用UUID的真正好处是什么? 它更快,更可靠,更容易记住(哈哈没有),什么?

以下是在fstab安装时应该使用UUID而不是/dev/XXX 的实际示例 。 (所以是的,它更可靠,因为当链条驱动器出来时,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 pendrives /存储卡并不总是有这样的识别。)

但是这些唯一标识符用于驱动器和操作系统,对于您而言,更重要的是分区的唯一标识符,这就是UUID的用途。 由于分区在驱动器上是可更改的,因此UUID也可以更改。