programmer Asked: 2019-04-16 11:34:29 +0800 CST2019-04-16 11:34:29 +0800 CST 2019-04-16 11:34:29 +0800 CST 分区(一般) 772 我最近一直在研究分区,我对一些事情感到很困惑: 什么是分区表,它的用途是什么 什么是分区方案(GPT 和 MBR)以及它们的用途 最后我做了一些研究,看到术语“MBR”和“GPT”被用来描述分区表,我的最后一个问题是,MBR 和 GPT 是分区的另一个名称吗? partition disk 2 个回答 Voted Best Answer Hermann 2019-04-16T13:09:35+08:002019-04-16T13:09:35+08:00 分区 让我们从另一个问题开始:什么是磁盘(从软件的角度来看)? 磁盘是一块内存。它有一个开始和一个结束。它包含从 0 开始枚举的数据片段(您称其为地址)。一条数据通常称为一个扇区,通常产生 512 字节。 想象一个没有文件系统的世界。您只需直接将数据写入磁盘即可完全使用磁盘。然后,您的数据将位于磁盘上。它有一定的长度。它从地址 a 开始并占用地址 b 的空间。现在,您可能想要拥有多组数据,并且希望以某种方式组织数据。你可能会说:我想把内存分成固定大小的小部分。我将这些部分称为分区。我用它们来组织我的数据。 所以你想出了分区表的概念。分区表是一个明确的整数列表,用于表征(开始、结束、指定的使用类型)磁盘的分区。 MBR实际上不仅仅是一个分区表,它还包含一个分区表。MBR 还包含一些与引导系统有关的可执行代码。您可以说,MBR 是分区表概念的一种广泛使用的实现。MBR 预计将在扇区 0 中找到。它被制成适合 512 字节的那个扇区。因此,它可以描述的分区的数量和大小是有限的。 GPT是另一种实现,但它更大,因此能够描述更多更大的分区。 词源 要了解 MBR 一词的词源,我们需要考虑历史。在您考虑如何组织数据之前,您希望您的系统能够启动。关闭电源后,计算机几乎“坏”了,因为它什么也做不了。为了在开机后变得有用,第一个程序需要从一个众所周知的位置加载。这个众所周知的位置可以是硬盘驱动器的第一个扇区(这是对引导过程的总体简化)。第一个程序称为boot-loader。添加一些标准,MBR(主引导记录)就诞生了。从这个角度来看,在 MBR 中拥有一个分区表是一个不错的附加功能,而不是必需品。 引导加载程序通常读取分区表,查看第一个可引导分区,然后继续加载实际的操作系统。这就是为什么MBR 分区方案通常带有一个用于操作系统的分区。 使用 GPT(GUID 分区表),为引导过程指定了一个分区,即 ESP(EFI 系统分区)。ESP 通常使用 FAT 文件系统进行格式化。引导加载程序存储在一个文件中。实际的操作系统通常驻留在另一个分区中。这就是为什么GPT 分区方案通常带有至少两个分区:一个用于引导加载程序,一个用于操作系统。 ctrl-alt-delor 2019-04-16T12:20:18+08:002019-04-16T12:20:18+08:00 存储分区位置的分区表。分区中没有存储任何内容。操作系统读取分区表,并限制软件可以写入的位置(因此/dev/sda1在其块编号中添加了偏移量(startOffset),并且任何小于 0 或大于 $EndOffset-startOffset$ 的块都会被阻止。 主引导记录存储在分区表旁边,并包含第二阶段引导加载程序(第一阶段在 ROM 中)。然后加载第 3 阶段(例如 grub)。 GPT 是一种新的分区表标准。
分区
让我们从另一个问题开始:什么是磁盘(从软件的角度来看)?
磁盘是一块内存。它有一个开始和一个结束。它包含从 0 开始枚举的数据片段(您称其为地址)。一条数据通常称为一个扇区,通常产生 512 字节。
想象一个没有文件系统的世界。您只需直接将数据写入磁盘即可完全使用磁盘。然后,您的数据将位于磁盘上。它有一定的长度。它从地址 a 开始并占用地址 b 的空间。现在,您可能想要拥有多组数据,并且希望以某种方式组织数据。你可能会说:我想把内存分成固定大小的小部分。我将这些部分称为分区。我用它们来组织我的数据。
所以你想出了分区表的概念。分区表是一个明确的整数列表,用于表征(开始、结束、指定的使用类型)磁盘的分区。
MBR实际上不仅仅是一个分区表,它还包含一个分区表。MBR 还包含一些与引导系统有关的可执行代码。您可以说,MBR 是分区表概念的一种广泛使用的实现。MBR 预计将在扇区 0 中找到。它被制成适合 512 字节的那个扇区。因此,它可以描述的分区的数量和大小是有限的。
GPT是另一种实现,但它更大,因此能够描述更多更大的分区。
词源
要了解 MBR 一词的词源,我们需要考虑历史。在您考虑如何组织数据之前,您希望您的系统能够启动。关闭电源后,计算机几乎“坏”了,因为它什么也做不了。为了在开机后变得有用,第一个程序需要从一个众所周知的位置加载。这个众所周知的位置可以是硬盘驱动器的第一个扇区(这是对引导过程的总体简化)。第一个程序称为boot-loader。添加一些标准,MBR(主引导记录)就诞生了。从这个角度来看,在 MBR 中拥有一个分区表是一个不错的附加功能,而不是必需品。
引导加载程序通常读取分区表,查看第一个可引导分区,然后继续加载实际的操作系统。这就是为什么MBR 分区方案通常带有一个用于操作系统的分区。
使用 GPT(GUID 分区表),为引导过程指定了一个分区,即 ESP(EFI 系统分区)。ESP 通常使用 FAT 文件系统进行格式化。引导加载程序存储在一个文件中。实际的操作系统通常驻留在另一个分区中。这就是为什么GPT 分区方案通常带有至少两个分区:一个用于引导加载程序,一个用于操作系统。
存储分区位置的分区表。分区中没有存储任何内容。操作系统读取分区表,并限制软件可以写入的位置(因此
/dev/sda1
在其块编号中添加了偏移量(startOffset),并且任何小于 0 或大于 $EndOffset-startOffset$ 的块都会被阻止。主引导记录存储在分区表旁边,并包含第二阶段引导加载程序(第一阶段在 ROM 中)。然后加载第 3 阶段(例如 grub)。
GPT 是一种新的分区表标准。