危险,威尔·罗宾逊!危险!

危险,威尔·罗宾逊!危险!

我正在跟进这个问题并尝试在我的 MacBook 上安装 Debian。我丢失了那个帐户,所以我无法接受那个人的答案(对不起,我不会丢失这个)。

因此,我遵循了他的第一个建议,并发现我的磁盘是 MBR 格式(磁盘管理工具显示“分区样式:主引导记录”)。但文章并未解释如何识别我是在基于 BIOS 的计算机还是 EFI 的计算机上运行。

在我的磁盘管理工具中我发现了这一点:

3

如您所见,我有 bootcamp,这是我的 Windows 所在的地方,我有 HD (A),这是我以前存储 OS X 的地方,但后来我用 Windows 格式化了它,现在我只存储文件。我已经释放了 27Gb 来安装 Debian,但有些事情让我担心。

首先,为什么 HD(A) 和我缩小的空间 (27gb) 显示为扩展分区?是不是因为已经有 3 个分区了,而当 Windows 创建这个新分区时,由于 MBR 仅支持 4 个分区,因此它创建了一个扩展分区,这样我就可以将其分成许多其他分区?在这个“扩展分区”内安装 Linux 会有什么问题吗?

答案还告诉我要验证我的磁盘是如何分区的。好吧,不应该链接验证分区,而不是启动模式?

如果一切顺利,我将只使用 Debian 并格式化其他分区以便将来安装 Windows 10。

第一个分区称为“GPT 保护分区”,这是什么意思?它是否意味着我从 EFI 进行机器人操作,因为它称为 GPT?还有那个 620Mb 分区,这是什么意思?

如果我使用 EFI,那么我能确定我在混合 MBR 上运行吗?

抱歉,我问了这么多问题,我真的真的很困惑。我找到了有关 GPT 和 MBR 的信息,但我真的很担心在尝试这样做时会损坏我的电脑。

答案1

危险,威尔·罗宾逊!危险!

您的分区数据可疑,并且可能表示配置非常危险。我不能确定,但​​如果我的怀疑是正确的,下次您尝试更改分区表时(甚至在正常使用时),您都可能轻易地毁掉整个磁盘。

要弄清楚发生了什么,你需要使用我的gdisk公用事业。您可以在任何操作系统中使用它。只需在磁盘上启动它,如下所示:

$ sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.0

Partition table scan:
  MBR: hybrid
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with hybrid MBR; using GPT.

Command (? for help): q

如果MBR:出现以下情况hybrid(如示例所示),则表明磁盘处于极其危险状态,必须立即修复。如果行MBR:显示为MBR only,则只是磁盘从 GPT 转换为 MBR 时遗留了一些命名问题,实际上没有什么问题。在第二种情况下,您可以忽略此答案的其余部分;但如果MBR:显示为hybrid,请继续阅读……

本答案的其余部分假设您有一个混合型MBR在 MBR 端有扩展分区和逻辑分区。这种配置很危险,因为据我所知,没有分区工具支持它。更糟糕的是,逻辑分区需要额外的数据结构(称为扩展引导记录或 EBR),这些数据结构超出了分配给它们描述的分区的空间(但在扩展分区内),而使用混合 MBR 的工具无法跟踪这些分区。这种不一致是灾难的根源,因为如果您尝试使用仅支持 MBR 的工具进行分区,EBR 可能会被移动(可能移动到不在混合 MBR 中的某个 GPT 分区内),如果您使用 GPT 工具(如 OS X 的磁盘实用程序或gdisk),您最终可能会完全丢失逻辑分区定义。

稍微回顾一下,混合 MBR 在 Mac 上很有用,因为 Windows 将它们视为普通 MBR 磁盘,而 OS X 将它们视为普通 GPT 磁盘。这使得 OS X(使用 EFI 从 GPT 磁盘启动)和 Windows(在 Mac 上,以 BIOS/CSM/传统模式从 MBR 磁盘启动)可以共存。此设置的最大问题是,如果您使用标准 Windows 工具对磁盘进行重新分区;Windows 工具将调整 MBR 数据结构,但忽略 GPT 数据结构。但是,GPT 数据结构是主要数据结构;MBR 数据结构旨在简单地镜像 GPT 中的一些内容,以方便 Windows 使用。我怀疑您犯了这个错误,并在混合 MBR 磁盘上创建了逻辑分区。

有两种可能的解决方案,具体取决于磁盘上除了 Windows 安装之外的其他内容:

解决方案 1:仅限 Windows

如果 Windows 是磁盘上唯一的操作系统,那么解决方案(相对)简单:

  1. 使用仅支持 MBR 的分区工具从 MBR 中删除 type-0xEE 分区。相对较旧的 Linux 版本fdisk适合执行此任务,但新版本可以理解 GPT,因此将显示磁盘的 GPT 端,而不是 MBR 端。Ubuntu 至少到 14.04 版本都附带旧版本fdisk,因此您可以使用 Ubuntu 14.04 live 映像执行此任务。(我不记得其他发行版何时进行了切换。)
  2. 发射修复零件(大多数 Linux 发行版中的软件包fixparts的一部分gdisk)。它应该会注意到磁盘上存在剩余的 GPT 数据,并询问是否应将其删除。让它删除,然后退出。

此过程应删除 GPT 数据,使磁盘保留为仅 MBR。计算机应该继续启动 Windows,但总是有可能发生错误,并且必须重新安装 Windows 启动加载程序,或者如果出现严重错误,甚至需要恢复所有数据,因此请准备好 Windows 恢复工具和备份。

如果一切顺利,你就可以安装 Debian处于 BIOS/CSM/传统模式。当你启动 Debian 安装程序时,请确保/sys/firmware/efi目录是不是存在。如果存在,请调整启动时选项,使其以 BIOS/CSM/传统模式启动。当您以这种方式安装 Debian 时,它会将 Mac 视为基于 BIOS 的普通 PC,然后一切都会正常。

解决方案 2:Windows 加上 OS X 或 Linux

如果磁盘上除了 Windows 之外还装有 OS X 和/或其他 Linux,则必须将两个(可能相互矛盾的)分区表合并为一个一致的分​​区表。这比前面的解决方案困难得多,风险也更大。为此,您必须:

  1. 确定 GPT 和 MBR 中哪些分区是有效的。
    • Windows 使用 MBR,因此请使用仅支持 MBR 的工具(例如默认的 Windows 分区工具或旧版本的 Linux)来识别您的 Windows 分区fdisk
    • OS X 和 Linux 都在混合 MBR 磁盘上使用 GPT,因此如果磁盘上有 OS X 或 Linux 分区,请使用 GPT 感知工具(例如gdisk或 )识别它们parted
    • 在所有情况下,记录有效分区的起始扇区和结束扇区。不幸的是,许多工具不提供扇区精确的数据。在 Linux 中,、fdiskgdiskparted提供,但fdisk您必须确保使用“CHS 模式”,并且对于parted,您必须输入unit s来设置扇区模式。
  2. 创建一组一致的 GPT 分区。这可能需要删除一个或多个不再存在的 MBR 分区,并将其替换为您在上一步中确定的有效 MBR 分区。请注意,如果您的有效 MBR 分区与有效的 GPT 分区重叠,那么您已经陷入了严重的麻烦。在这种情况下,您应该备份一切并从头开始,或者至少对磁盘进行分类以决定稍后要删除和恢复的分区。
  3. 使用gdiskgptsync或其他可以创建混合 MBR 的工具来创建一个新的混合 MBR,该混合 MBR 仅使用主分区来映射 Windows 分区。

此过程可能会导致 Windows 无法启动,因此您应该准备好 Windows 恢复磁盘。使用混合 MBR 在磁盘上安装 Debian 也可能会擦除混合 MBR 和/或导致 Windows 无法启动,因此您应该准备好恢复混合 MBR 和/或运行 Windows 恢复工具。

原则上,您应该能够在 BIOS/CSM/legacy 或 EFI 启动模式下安装 Debian。出于各种原因,我更喜欢后者,但有些发行版很难在 Mac 上以这种方式安装。(我不知道 Debian 安装程序是如何工作的。)

相关内容