如何获取给定分区的 grub 名称?(特别是 grub2)

sig*_*g_v 5 grub2

我知道 grub 命名我的硬盘驱动器和分区,从零开始计数,所以/dev/sda 可能(hd0,0),也/dev/sdb2 可能(hd1,2)。是否可以保证 grub 以与 Linux 相同的顺序对硬盘驱动器甚至分区进行编号?我找到的有关此命名约定的文档(1)忽略了此细节,并且我找不到实际确定给定分区的 grub 名称的方法。

我的印象是,它甚至不能保证在我重新启动电脑时不会/dev/sda加载/dev/sdc,这就是我们使用 UUID 而fstab不是/dev/sd*标签的原因。有没有办法在/etc/grub.d脚本中使用 UUID 或类似的东西来代替(hdX,Y)符号?

(1) https://dev.gentoo.org/~floppym/grub.html#Naming-convention

Edu*_*ola 2

  • “/dev/sda 可能是 (hd0,0)”:错误。GRUB 中的磁盘由单个数字表示。如果 GRUB 安装在 /dev/sda 中,则它将是(hd0).

  • 分区的名称带有(hdX,Y),其中X是硬盘驱动器号和Y分区号。

  • 磁盘编号因情况而异。如果您将 GRUB 链接加载到另一个磁盘(例如,拇指驱动器)中,则拇指驱动器将表示为,(hd0)您的主磁盘将表示为(hd1)(如果您从主磁盘运行 GRUB,则情况相反)。

  • 您始终可以使用该命令列出 GRUB 中的所有驱动器ls

  • (hdx,y)您可以通过以下命令使用 UUID 而不是传统方法:(search --no-floppy --fs-uuid --set XXXXXX替换XXXXXX为分区的 UUID。它将把它设置为根。