Linux – GRUB: how find partition number (hd0,x)

grublinux

i am playing with grub and i change the root using:

root (hda,x)

how can i know what's x for /dev/sda7 ?

fdisk -l

   Device Boot      Start         End      Blocks   Id  System
/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 swap / Solaris

the problem is that in Gparted view, the order is not like sda5, sda6, sda7, …
but the order is like:

  • sda6
  • sda9
  • sda10
  • sda7
  • sda8

so what's x for /dev/sda7 ?

Best Answer

First off, you need to realize that in grub, it does not use normal linux hard drive identifiers. Instead, the letters correlate to numbers, starting with zero (i.e. hda = hd0, hdb = hd1, etc).

Secondly, in grub-legacy, the partition number starts at 0, not 1 like in Linux, so subtract 1 from the linux partition number. And in grub2, it starts at 1.

An example is: hda1 = (hd0, 0)

Finally, grub does not differentiate between hd and sd devices, so everything is labeled hd.

Thus, in your case, your grub entry for /dev/sda6 should read (hd0, 5)

Related Question