MBR和GBT 下载本文

内容发布更新时间 : 2024/4/28 20:01:03星期一 下面是文章的全部内容请认真阅读。

安装系统的时候涉及到MBR和GPT,现在也贴上来,供以后复习使用。

MBR 和 GPT 的问题已经走到了非常现实的阶段-3T硬盘开始普及。MBR 由于对 3T 硬盘寻址无法支持,终于要开始被弃用了。但仅仅只是“开始”,我感觉至少10年之内 MBR 还不会消失。恐怕当GPT适应不了需求的时候,MBR才会消失。

一、MBR 的失误

说“失误”牵强了一点。我们不能要求当年只有5M的硬盘就扣出2M来放寻址信息。计算机永远比你想象的要发展的快。

首先你要有一些基本的硬盘的MBR知识,如果你不熟悉,可以先在 wiki 看一看硬盘的基本结构。 在了解了磁道、柱面、扇区之后,再看下面的 MBR 结构就很了然了:

基本MBR结构 偏移量(位置) (within sector) 长度 (in bytes) 解释 引导程序 十进制 000 – 445 446 – 509 510 – 511 十六进制 000 – 1BD 1BE – 1FD 1FE – 1FF 446 64 2 主分区表 引导记录 表 1. MBR 永远占用了第一个扇区,通常为512bytes大小。在这512bytes中被MBR本身的程序用去了446bytes。于是,真正描述分区信息的就只有 64 bytes。而根据4个主分区的设计,每一个分区能用到的只有 16bytes. 那么!这16bytes是如何工作的? 16-byte 分区表结构 Relative Offsets (within entry) 0 1 – 3 4 5 – 7 8 – 11 长度 (bytes) 1 3 1 3 4 内容 引导标记 (80h = active) CHS 开始位置 分区类型描述 CHS 结束位置 启始扇区 12 – 15 表 2. 4 分区大小 (扇区单位) 在表2中,有2个“开始位置”,我们分开理解。 硬盘的历史过程中,第一个遇到的问题就是 8G 瓶颈。这就是因为在 CHS 描述方式中,描述起点和终点均为3个 byte。我们假设是 FF FF FF ,所以是 16*16*16*16*16*16*512=8589934592 这就是 8G 瓶颈的由来了。 但是今天 CHS 方式几乎已经不用了。后面还有 4 个 bytes 的“启始” 是给 LPA 方式用的。他的极限就是 8589934592 * 256 =2199023255552 这就是 2T 的限制由来了。 在硬盘容量的历史中,有很多因素决定了它的限制。BIOS,ATA(IDE),文件系统。百度上的这篇文章简单的介绍了各个阶段的限制。 二、GPT 的思路 GPT (GUID Partition Table)属于 EFI 方案中的一部分。虽然很早就开始制定这个标准,但到今天,还是有很多系统不支持 GPT。 首先,引用一张wikipedia上的结构图,来了解一下 GPT 的基本结构。

GPT 为了兼容 MBR,LBA 0 依旧保留了MBR的结构。在GPT工作是,会优先读取 GPT (LBA1) 内容。如果没有 GPT 内容,则认为这是一块MBR磁盘。再从LBA 0 读取MBR。

在硬盘末尾,GPT 备份了一份,这样当GPT出错时,可以快速的从硬盘末尾恢复。LBA -1 (负1) 表示倒数第一块 LBA。

从LBA 2 到 LBA 33 ,一共预留了 128 个分区表空间。 GPT 支持在一块硬盘上创建 128 个分区(真有这种需求?)。所以每一个分区可以使用 128 bytes 的空间。 来看一看 LBA 1 的结构吧,有了 512bytes 的巨型空间,都用不掉了。 0 8字节 签名(”EFI PART”, 45 46 49 20 50 41 52 54) 8 4字节 修订(比如,1.0,值是 00 00 01 00)