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

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

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

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

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

答案1

  • “/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。它会将其设置为根。

相关内容