在 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 逻辑分区之间的相似之处。虽然它们在概念上相似,但顶级分区被细分,正如您所看到的,它们的实现方式不同。