当我们取消注释 GRUB_DISABLE_LINUX_UUID=true 时会发生什么?

当我们取消注释 GRUB_DISABLE_LINUX_UUID=true 时会发生什么?

当我们在 /etc/default/grub 中取消注释 GRUB_DISABLE_LINUX_UUID=true 时会发生什么。

答案1

  • 嗯,我认为上面的评论说明了一切
    # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux

  • 取消注释该行后,root= 将作为设备名称传递,而不是 UUID。

    linux /boot/vmlinuz-2.6.30-1-amd64 root=UUID=...

    linux /boot/vmlinuz-2.6.30-1-amd64 root=/dev/sdX

  • 但是,不建议取消注释该行,因为如果您删除/创建新分区,分区表将会发生更改。
  • 这样你就无法启动系统。

答案2

取消注释后,下次 grub 重新生成 /boot/grub.cfg 时将使用绝对设备名称而不是 UUID,即 /dev/sdXY

因此,如果你重新排列分区表中的分区(例如插入/删除分区)并且分区号发生变化,grub 将无法找到要启动的内核

使用 UUID,即使重新排列分区也不会造成任何影响

UUID 的缺点是太长,因此很难记住。

答案3

真正的问题是向您的系统添加磁盘。如果您的磁盘之前是 /dev/sda,并且作为唯一驱动器插入 SATA1,后来您添加了第二个驱动器,但将其插入 SATA0,则它将变为 /dev/sda,并且您的 root= 映射将无效。但是 UUID 没有这个问题,因为它们是唯一标识符。

此外,如果您有多个扩展卡,它们有时会在略有不同的时间被检测到,从而导致挂在其上的驱动器的驱动器名称分配不同。同样,UUID 不受影响。此外,如果一个驱动器坏了,有时另一个驱动器会代替它,例如,如果 /dev/sda 坏了,也许在下次启动时 /dev/sdb 会神奇地变成 /dev/sda。确实会发生这种情况。

我想说,系统越大或者越大,启动时驱动器随机排列的可能性就越大。

就我个人而言,我并不介意使用 UUID 作为 root=,但我知道它有它的位置。

相关内容