Linux GRUB磁盘分区表示法

我们已经知道 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 中的设备文件名来表示分区了。