“mount”命令是否依靠 MBR 来检测分区,或者它可以使用 GPT 分区表?

“mount”命令是否依靠 MBR 来检测分区,或者它可以使用 GPT 分区表?

TL:DR

我有 Mac,这意味着我有 EFI 和带有混合 MBR 的 GPT 格式磁盘。我正在考虑添加第五个分区;为此,我将用保护和混合 MBR 中的一个分区来屏蔽我的前三个 GPT 分区。

但是,如果我在这些之后启动操作系统(例如,我的第四个操作系统是 Linux),我是否能够从受保护的 MBR 内部挂载文件系统?也就是说,像 Linux 这样从旧式 MBR 启动的操作系统是否可以查看 GPT 分区,还是依靠 MBR 来告诉它存在哪些分区?

是否mount依赖 MBR,或者它会找到(我的)GPT 磁盘吗?


完整/旧问题

我的 Mac 上有 4 个分区的混合 MBR。

1. EFI System Partition
2. Mac OS X
3. Mac Recovery Partition
4. Ubuntu

现在,我想将 Archlinux 添加到末尾,即附加5. Archlinux,但我还想维护一个合理的 MBR(因为 MBR 只能有四条记录)。

我的想法是创建一个 MBR 分区,覆盖分区 1 和 2,或 2 和 3,或 1-3,从而使 MBR 认为有一个分区,并且没有任何东西会触碰它(这是 GPT 磁盘的典型特征,它具有保护性 MBR,出于安全原因,它用一个旧式 MBR 分区覆盖所有 GPT 分区)。

我的问题是:Ubuntu 是否使用 MBR 来挂载文件系统?如果我确实创建了好的保护分区,我是否不再能够在 Ubuntu 中挂载我的 Mac OS X 文件系统,假设 Ubuntu 是使用传统的 MBR 方法安装的,而不是 GPT / EFI 启动 Ubuntu。*

*或者 Ubuntu 中的 EFI 兼容性现在更好了?

答案1

答案取决于操作系统。使用 GPT 或 MBR 的并不是操作系统本身mount,而是操作系统内核。OS X 的内核更依赖于 GPT 数据而不是 MBR 数据,因此它将混合 MBR 磁盘读取为 GPT 磁盘。Linux 内核也是如此如果该内核包含 GPT 支持,正如主要发行版发布的大多数二进制内核一样。但是,如果您构建自己的内核并忽略 GPT 支持,它将忽略 GPT 分区并改用 MBR 分区。

如果 Windows 发现混合 MBR,它会忽略 GPT 数据。这就是混合 MBR 有用的原因(尽管丑陋且危险):Windows 将混合 MBR 磁盘视为 MBR 磁盘,这意味着它在 BIOS 模式下启动时会安装到磁盘,而 Windows 将不是在 BIOS 模式启动时安装到 GPT 磁盘。

FreeBSD 以第三种方式工作:它提供两个都使用不同的设备节点的分区集。GRUB 2 的功能类似;您可以通过在分区号前添加代码来指定要使用的表,例如(hd0,gpt3)使用第一个磁盘上的第三个 GPT 分区。

还有一点:由于混合型 MBR 的危险,如果你在 OS X 和 Linux 之间进行双启动,但是不是启动 Windows 时,最好将混合 MBR 转换为标准保护性 MBR。但是,考虑到 Mac 的架构,这将要求您在 EFI 模式下启动 Linux。这在大多数 Mac 上都可以正常工作,但某些型号的硬件检测存在问题。因此,在将混合 MBR 转换为保护性 MBR 之前,您可能需要安装支持 EFI 的引导加载程序来测试您在 EFI 模式下启动和使用 Linux 的能力。您可以阅读有关 Linux 的 EFI 引导加载程序的更多信息这里。您可以使用以下方法将混合 MBR 转换为传统保护性 MBR:GPT fdisk(gdisk);键入x以进入专家菜单,键入n以创建一个新的保护 MBR,然后键入w以保存更改。

相关内容