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