android 6.0 sgdisk

本文介绍了MBR分区系统的局限性,如2TiB的大小限制和分区数量限制,并详细阐述了GPT(GUID分区表)如何解决这些问题。GPT使用64位LBA地址,支持高达8ZB的磁盘大小,具有冗余数据结构和CRC校验,可存储128个分区,并使用GUID标识分区类型。此外,GPT磁盘还有一个保护性MBR以确保与不支持GPT的工具兼容。文章还提到了Linux环境下支持GPT的实用工具,如gdisk和Parted。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


理解 MBR 的限制

在这个代码区域之后,MBR 将数据存储在大约 4 个分区上,这些分区称为主分区。每个分区采用两种方法进行描述:“柱面/磁头/扇区 (CHS)” 标记法和 “逻辑块寻址 (LBA)” 标记法。今天,CHS 标记法几乎成为了老古董,因为它是一个 24 位的数字。这意味着它只限于描述 8GB 大小的磁盘区域。假设一个扇区大小为 512 字节,32 位的 LBA 值支持 2TiB 大小。但是这个 2TiB 上限不太容易突破;因为在 MBR 中没有留下任何未分配的字段,可用于向 LBA 地址添加更多位。MBR 分区系统是一个数据结构补丁的大杂烩,用于克服早期的限制。MBR 自身完全驻留在一个硬盘的第一个扇区(512 字节)上。MBR 的前 400 个字节专门用于存储代码:引导装载程序 (boot loader)。 计算机引导时,基本输入/输出系统 (BIOS) 读取并执行这段代码。

除了这个可见的 2TiB 问题之外,MBR 还有其他困难。主要的困难是 4 个主分区的限制。要克服这个限制,其可能的方法是将一个主分区放到一边,作为一个占位符(称为扩展分区),用于容纳任意数量的附加分区(称为逻辑分区)。然而,这是一种笨拙的权宜之计,会导致一些问题。比如,安装多个操作系统时,如果过多的操作系统要求自身拥有过多的主分区,就会出现困难。

MBR 还有数据完整性问题。它是一个单一数据结构,容易受到误操作和磁盘故障的损坏。另外,由于逻辑分区以一种链接表结构定义,如果一个逻辑分区损坏,就会阻止对其余逻辑分区的访问。这些数据结构都没有任何形式的错误探测功能,因此,损坏很难定位。


GPT 的解决方案

GPT 定义是 Intel® 为一个 BIOS 替换创建的 Extensible Firmware Interface (EFI) 规范的一部分(参阅 参考资料 获取更多信息的链接)。尽管 GPT 是旨在替代今天大多数计算机上的旧 BIOS 标准的一部分,将 GPT 用在基于 BIOS 的系统上还是有可能的。但是,如果您的计算机已经使用 EFI,这一事实则是采用 GPT 的另一个理由。无论您的计算机使用旧 BIOS 还是 EFI,GPT 都将修复 MBR 的许多限制:

  • GPT 只使用 LBA,因此,CHS 问题就不复存在。
  • 磁盘指针的大小为 64 位,假设 512 字节扇区,这意味着 GPT 可以处理的磁盘大小最高达 512 x 264 字节(8 zebibytes,即 86 亿 TiB)。
  • GPT 数据结构在磁盘上存储两次:开始和结束各一次。在因事故或坏扇区导致损坏的情况下,这种重复提高了成功恢复的几率。
  • 循环冗余检验 (CRC) 值针对关键数据结构而计算,提高了数据崩溃的检测几率。
  • GPT 将所有分区存储在单个分区表中(带有备份),因此扩展分区或逻辑分区没有存在的必要。GPT 默认支持 128 个分区,当然您也可以更改分区表的大小,如果您的分区软件支持这种更改的话。
  • 虽然 MBR 提供 1 字节分区类型代码,但 GPT 使用一个 16 字节的全局唯一标识符 (GUID) 值来标识分区类型。这使分区类型更不容易冲突。
  • GPT 支持存储人类可读的分区名称。您可以使用这个字段来命名您的 Linux® /home、/usr、/var 和其他分区,以便它们在分区软件中更容易识别。

磁盘的第一个扇区专用于一个保护性 MBR,它是一个法定 MBR 数据结构,它定义一个单一分区类型 0xEE (EFI GPT)。 在低于 2TiB 磁盘上,这个分区将扩展到整个磁盘;在更大的磁盘上,它的大小应为 2TiB。 这个想法的目的是保护 GPT 磁盘免受不支持 GPT 的磁盘工具损坏。如果这类工具检查磁盘,它们将把磁盘视为没有空闲空间的 MBR 磁盘。(有的磁盘工具能够创建一个混合 MBR,除 EFI GPT 分区外,这个混合 MBR 将最多定义三个 MBR 分区。 这个想法的目的是使一个不支持 GPT 的操作系统,比如,Windows® 的大多数预览版 Windows Vista®,与 GPT 分区在一个磁盘上共存。然而,这个配置显然是非标准的,杂乱的)。

由于 GPT 包含了一个保护性 MBR,一台基于 BIOS 的计算机可以使用存储在这个保护性 MBR 的代码区域的引导装载程序从一个 GPT 磁盘引导,但这个引导装载程序和操作系统必须都支持 GPT。 (不过,一些有缺陷的 BIOS 无法从 GPT 磁盘引导。)EFI 包含自己的引导装载程序,因此您可以在一个基于 EFI 的系统上从一个 GPT 磁盘引导。

GPT 的主要问题是兼容性:低级别磁盘工具和操作系统必须全部支持 GPT。这种支持对 Linux 相当普遍,尽管您可能需要处理一些细节,并针对低级别磁盘维护更换您使用的部分工具。如果您要多重引导一台计算机,您必须检查所有操作系统的 GPT 支持。

如果您管理许多 Linux 系统,或者如果您打算在不久的将来添加一个超过 2TiB 的磁盘,您可能要考虑采用 GPT 进行一个安装测试。在完全必要时才进行安装测试可以使您事先对 GPT 的特性有关身体验,并了解一些支持 GPT 的 Linux 实用工具的奇怪行为。

利用 MBR 和 GPT 磁盘的组合来运行一个系统,这是有可能实现的。例如,您可以从 MBR 磁盘引导,但仍然使用 GPT 作为数据磁盘。这样的配置对基于 BIOS 的系统上的 Windows 是最有用的,因为 Windows 无法使用 BIOS 从 GPT 启动,但 Windows Vista 和更高版本的 Microsoft 操作系统可以使用 GPT 数据磁盘。


实用工具支持

GPT 支持的第三个领域是系统实用工具。Linux 提供三种主要的分区工具系列,均不同程度支持 GPT:

  • fdisk 系列。这些程序(fdiskcfdisk 和 sfdisk)是文本模式的工具,可以处理 MBR 和一些更独特的分区表,但它们不能处理 GPT。
  • GNU Parted (libparted)。GNU Parted 项目提供一个库 (libparted) 和一个文本模式的实用工具 (parted) 进行分区。若干个图形用户界面 (GUI) 实现工具也构建于 libparted 之上。libparted 库可以处理 MBR、GPT 和几种其他分区表类型。
  • GPT fdisk该系列(gdiskcgdisk 和 sgdisk)根据 fdisk 系列进行建模,但可以在 GPT 磁盘上工作。(请注意,我是 GPT fdisk的作者。)

refer to :

http://www.rodsbooks.com/gdisk/

http://www.ibm.com/developerworks/cn/linux/l-gpt/?S_TACT=105AGX52&S_CMP=tec-ccid

http://linux.die.net/man/8/sgdisk



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值