GRUB 分区命名约定

GRUB 分区命名约定

在 Ubuntu 16.04 LTS 发行版的 GNU GRUB 信息页面中,分区的命名约定似乎很简单,定义如下:

(hd0,msdos2)

  这里,“hd”表示它是硬盘驱动器。第一个整数“0”表示驱动器号,即第一个硬盘,字符串“msdos”表示分区方案,而第二个整数“2”表示分区号...

...该表达式表示第一个硬盘驱动器的第二个分区。在这种情况下,GRUB 使用磁盘的一个分区,而不是整个磁盘。

这似乎表明第一个硬盘驱动器在第二个磁盘分区上有某种胖分区,称为 msdos 分区方案。

继续阅读,还有另一个示例,文本如下:

(hd1、msdos1、bsd1)

这意味着第二个硬盘的第一个 PC 分片号上的 BSD 'a' 分区。

由于第一个定义指定第二个字段是分区方案,后跟分区索引(从1开始),并且第13.1节提到了指定“子分区”的能力,那么这个例子似乎表明bsd1分区是msdos1 分区的子分区。

文本表明它是“第一个 PC 分片编号”上的“BSD 'a' 分区”。我不熟悉“BSD 'a'分区”、术语“第一个 PC 片号”或子分区的概念,因此这使得它有点令人困惑,因为我无法找到更多信息。

什么是子分区?它与逻辑分区和扩展分区有何不同?更具体地说:什么是 BSD“a”分区和第一个 PC 分片号?

答案1

关于MSDOS分区:

这似乎表明第一个硬盘驱动器在第二个磁盘分区上有某种胖分区,称为 msdos 分区方案。

实际上,该msdos2指示仅与分区方案有关;用于定义分区的格式。例如,替代格式是 GPT。这与分区的内容(例如使用的文件系统,例如 FAT)没有任何关系。

关于切片:

什么是子分区?它与逻辑分区和扩展分区有何不同?更具体地说:什么是 BSD“a”分区和第一个 PC 分片号?

这里的混乱源于 BSD Unix 系统中术语的差异。有两个级别的“分区”在起作用。

第一个是 MSDOS(或 GPT)分区。在此级别,分区信息存储在位于磁盘开头的结构中(对于 GPT,副本存储在磁盘末尾)。这是硬件可以理解的分区级别; BIOS 或 UEFI 固件知道如何从此类分区引导操作系统(或引导管理器/加载程序)。

在本例中,第二级是 BSD磁盘标签。此分区信息存储在 MSDOS/GPT 分区内。此外,硬件(至少在 PC 的情况下)不理解也不使用这种级别的分区。由操作系统来处理它。 BSD 系统能够利用这种分区方案。

现在最关键的地方来了。在 BSD 系统的上下文中,MSDOS/GPT 分区称为片,由 BSD 磁盘标签创建的子分区称为分区。

您可能已经注意到 BSD 分区和 MSDOS 逻辑分区之间的相似之处。虽然它们在概念上相似,但顶级分区被细分,正如您所看到的,它们的实现方式不同。

相关内容