GRUB:如何找到分区号 (hd0,x)?

GRUB:如何找到分区号 (hd0,x)?

我正在使用 grub 并且使用以下命令更改根目录:

root (hda,x)

我怎么知道是什么X为了/dev/sda7

fdisk -l

   设备启动开始结束块ID系统
/dev/sda1 * 1 1958 15727603+ 7 HPFS/NTFS
/dev/sda2 1959 7476 44323335 f W95 扩展 (LBA)
/dev/sda5 1959 4569 20972826 7 HPFS/NTFS
/dev/sda6 4570 5352 6289416 83 Linux
/dev/sda7 6373 7119 6000246 83 Linux
/dev/sda8 7120 7476 2867571 83 Linux
/dev/sda9 5353 6135 6289416 83 Linux
/dev/sda10 6136 6372 1903671 82 Linux 交换 / Solaris

问题是分区查看,顺序不是像 sda5、sda6、sda7、... 而是像这样的顺序:

  • sda6
  • sda9
  • sda10
  • sda7
  • sda8

有啥X为了/dev/sda7

答案1

首先,您需要意识到在 grub 中,它不使用普通的 linux 硬盘驱动器标识符。相反,字母与数字相对应,从零开始(即 hda = hd0、hdb = hd1 等)。

其次,在 grub-legacy 中,分区号从 0 开始,而不是像 Linux 中那样从 1 开始,因此从 Linux 分区号中减去 1。而在 grub2 中,它从 1 开始

例如:hda1 = (hd0, 0)

最后,grub 不区分 hd 和 sd 设备,因此所有内容都标记为 hd。

因此,对于你的情况,/dev/sda6 的 grub 条目应该为 (hd0, 5)

答案2

最简单的方法是从 grub cli 并使用制表符完成。

首先输入...root(hd0,

然后点击 [tab]
制表符补全应该会列出可用的分区。选择你认为最有意义的分区,用括号括起来,然后在下一行输入 kernel /

然后再次按 [tab]...如果文件和目录结构看起来正确,则说明您选择了正确的结构...如果不是...请备份并重做根行。

相关内容