Linux GRUB磁盘分区表示法

1年前 (2024-04-28)
我们已经知道 Linux 系统分区的设备文件名的名是有严格规范的,类似于 /dev/sda1 代表块 SCSI 硬盘的个主分区。但是在 GRUB 中分区的表示方法却完全不同,采用了类似 hd(0,0) 的方式来表示分区。

其实也很好理解,其中:

  • hd 代表硬盘,不再区分是 SCSI 接口硬盘,还是 IDE 接口硬盘,都用 hd 代表;

  • 个 0 代表 Linux 系统查找到的块硬盘,第二块硬盘为 2,以此类推;

  • 第二个 0 代表这块硬盘的个分区,以此类推;


也就是说,hd(0,0) 代表的是块硬盘的个分区,和 Linux 系统中 /dev/sda1 的含义类似,只是不再区分是 SCSI 硬盘还是 IDE 硬盘。我们用表 1 来说明一下 Linux 系统对分区的描述和 GRUB 中对硬盘的描述。

表 1 分区表示

硬 盘

分 区

Linux中的设备文件名

GRUB中的设备文件名

块 SCSI 硬盘

个主分区

/dev/sdal

hd(0,0)

第二个主分区

/dev/sda2

hd(0,1)

扩展分区

/dev/sda3

hd(0,2)

个逻辑分区

/dev/sda5

hd(0,4)

第二块 SCSI 硬盘

个主分区

/dev/sdb1

hd(1,0)

第二个主分区

/dev/sdb2

hd(1,1)

扩展分区

/dev/sdb3

hd(1,2)

个逻辑分区

/dev/sdb5

hd(1,4)


在这张表中要注意,逻辑分区不能占用主分区与扩展分区的分区号,所以个逻辑分区在 Linux 系统中应该用 /dev/sda5 表示,在 GRUB 中应该用 hd(0,4) 表示,还要注意 GRUB 的表示方式只在 GRUB 的配置文件中生效,一旦离开了 GRUB 的配置文件,就要使用 Linux 中的设备文件名来表示分区了。