我正在跟进这个问题并尝试在我的 MacBook 上安装 Debian。我丢失了那个帐户,所以我无法接受那个人的答案(对不起,我不会丢失这个)。
因此,我遵循了他的第一个建议,并发现我的磁盘是 MBR 格式(磁盘管理工具显示“分区样式:主引导记录”)。但文章并未解释如何识别我是在基于 BIOS 的计算机还是 EFI 的计算机上运行。
在我的磁盘管理工具中我发现了这一点:
如您所见,我有 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 是磁盘上唯一的操作系统,那么解决方案(相对)简单:
- 使用仅支持 MBR 的分区工具从 MBR 中删除 type-0xEE 分区。相对较旧的 Linux 版本
fdisk
适合执行此任务,但新版本可以理解 GPT,因此将显示磁盘的 GPT 端,而不是 MBR 端。Ubuntu 至少到 14.04 版本都附带旧版本fdisk
,因此您可以使用 Ubuntu 14.04 live 映像执行此任务。(我不记得其他发行版何时进行了切换。) - 发射修复零件(大多数 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,则必须将两个(可能相互矛盾的)分区表合并为一个一致的分区表。这比前面的解决方案困难得多,风险也更大。为此,您必须:
- 确定 GPT 和 MBR 中哪些分区是有效的。
- Windows 使用 MBR,因此请使用仅支持 MBR 的工具(例如默认的 Windows 分区工具或旧版本的 Linux)来识别您的 Windows 分区
fdisk
。 - OS X 和 Linux 都在混合 MBR 磁盘上使用 GPT,因此如果磁盘上有 OS X 或 Linux 分区,请使用 GPT 感知工具(例如
gdisk
或 )识别它们parted
。 - 在所有情况下,记录有效分区的起始扇区和结束扇区。不幸的是,许多工具不提供扇区精确的数据。在 Linux 中,、
fdisk
和gdisk
都parted
提供,但fdisk
您必须确保不使用“CHS 模式”,并且对于parted
,您必须输入unit s
来设置扇区模式。
- Windows 使用 MBR,因此请使用仅支持 MBR 的工具(例如默认的 Windows 分区工具或旧版本的 Linux)来识别您的 Windows 分区
- 创建一组一致的 GPT 分区。这可能需要删除一个或多个不再存在的 MBR 分区,并将其替换为您在上一步中确定的有效 MBR 分区。请注意,如果您的有效 MBR 分区与有效的 GPT 分区重叠,那么您已经陷入了严重的麻烦。在这种情况下,您应该备份一切并从头开始,或者至少对磁盘进行分类以决定稍后要删除和恢复的分区。
- 使用
gdisk
、gptsync
或其他可以创建混合 MBR 的工具来创建一个新的混合 MBR,该混合 MBR 仅使用主分区来映射 Windows 分区。
此过程可能会导致 Windows 无法启动,因此您应该准备好 Windows 恢复磁盘。使用混合 MBR 在磁盘上安装 Debian 也可能会擦除混合 MBR 和/或导致 Windows 无法启动,因此您应该准备好恢复混合 MBR 和/或运行 Windows 恢复工具。
原则上,您应该能够在 BIOS/CSM/legacy 或 EFI 启动模式下安装 Debian。出于各种原因,我更喜欢后者,但有些发行版很难在 Mac 上以这种方式安装。(我不知道 Debian 安装程序是如何工作的。)