MBR 磁盘上的 GParted 错误,声称它是 GPT。(这是错误的,但为什么呢?)

MBR 磁盘上的 GParted 错误,声称它是 GPT。(这是错误的,但为什么呢?)

它是非常我很想在这里大声抱怨一下 GParted 和 Linux,但我会尽力避免。:)

问题:

为什么 GParted 声称我的磁盘已损坏且为 GPT,而磁盘工具却认为一切正常?

我的磁盘上唯一的分区(NTFS)上有 Windows 7 x64,并且有绝对没问题-- 我从来没有遇到过任何问题,并且我运行了 CheckDisk 以确保无误。

GParted 为何会如此表现?

(我本来打算在 AskUbuntu 上发布此内容,但由于 GParted 实际上并不局限于 Ubuntu,所以我将其发布在这里。我正在使用 Ubuntu 11.04 x64 的启动盘。)

截屏

答案1

磁盘有可能以前是GUID 分区表 (GPT) 磁盘。此类磁盘的分区数据通常位于扇区 0-33 以及磁盘的最后 33 个扇区中。如果使用不支持 GPT 的实用程序对 GPT 磁盘进行重新分区,该实用程序很可能只会替换扇区 0 (MBR),而大部分 GPT 数据保持不变。从技术上讲,该磁盘就是 MBR 磁盘;但是,一些分区工具(包括许多基于 libparted 的 Linux 工具,包括 GParted)会对此感到困惑。它们可能会将磁盘显示为完全空白,或者显示旧的 GPT 分区而不是新的 MBR 分区。这是 libparted 中的一个错误,但它是由磁盘上的一些不一致的数据触发的。

解决方案是清除旧的 GPT 数据。可以通过多种方式完成此操作,但最简单的方法可能是使用修复零件,它是为这个和其他一些分区表修复任务而设计的。或者,您可以使用 dd 擦除磁盘上的扇区 1(从 0 开始编号)和最后一个扇区;这就是让 libparted 感到困惑的 GPT 签名所在的位置。

抱歉,Mehrdad,我没早点来。我猜想,当你重写分区表时,你也删除了 MBR 中的引导加载程序。重新安装引导加载程序应该可以解决这个问题。你可能写了错误的但是,分区表会更难修复。

答案2

有一篇很好的帖子这里, “如今,99% 的 PC 使用名为“DOS 分区表”的分区表标准。正如您所猜测的,它相当古老,是在操作系统使用 10MB 硬盘时设计的。因此,英特尔很久以前就定义了一个更好的新标准(但没有 DOS 那么古老!)。此分区表在启动时由 BIOS 读取,因此为了向后兼容,GPT 以伪造的 DOS 分区表开始,以使旧 BIOS 理解它不是真正的 DOS 分区表。安装程序无法继续,因为它根本不了解您的磁盘是什么,并且可能会严重损坏现有数据。此 GPT 标准用于 Apple 计算机,并且偶尔用于一些专业 PC。此磁盘来自 Mac 还是为 Mac 格式化?您可以在 Ubuntu CD 上启动,选择“尝试”,然后选择系统->管理->Gparted 分区编辑器,然后擦除当前分区表(这将擦除所有数据)并重新创建新的 DOS 分区表。安装程序应该可以正常工作。”这真的很容易解决。

相关内容