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


20

我正在使用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 Ext'd(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

问题是在Gparted视图中,顺序不像sda5,sda6,sda7,...,但是顺序像:

  • sda6
  • sda9
  • sda10
  • sda7
  • sda8

那么x代表/dev/sda7什么呢?

Answers:


16

首先,您需要意识到在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)


谢谢,是5,因为扩展从4开始吗?是这样吗:sda1-> 0 sda2-> sda5-> 4 sda6-> 5 sda7-> 6
Alexar 2010年

我正好试了一下乔纳森建议,我的是在hd2,4和我不得不把sdb4使其工作
jayeshkv


9

确定的最简单方法是从grub cli并使用制表符补全。

首先输入... root(hd0,

然后单击[选项卡]
。选项卡完成应随后列出可用的分区。选择您认为最有意义的一个,将其放在圆括号附近,然后在下一行键入kernel /

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


没有为我工作,使用openSUSE的飞跃42.1和GRUB遗产(GRUB 0.97)
安东尼奥·维尼修斯梅内塞斯Medei

这对于我的情况很有帮助,但是我的分区(我有11个)列表在屏幕外滚动显示,而我无法通过SHIFT + PGUP看到第一个分区。有没有办法专门列出分区?喜欢type (hd1,gpt2)还是什么?
哈珀维尔'17

3
我刚找到一条set pager=1命令。我认为这行得通,没关系。
哈珀维尔'17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.