为什么我会收到“超出 msdos 分区表规定的最大值”的消息?

为什么我会收到“超出 msdos 分区表规定的最大值”的消息?

最近的安装尝试在安装类型屏幕上停止,我通知它与我的 Windows 7 64 位操作系统进行双启动。当我单击立即安装时,我收到一条错误消息:

starting sector number, 4294967296 exceeds the msdos-partition-table-imposed maximum of 4294967295

由于此错误,我无法单击“确定”按钮来删除错误,因为它停留在那里,并且它似乎没有冻结,因为当我将鼠标悬停在选择上时,我可以看到按钮上的灯光亮起,但它不会继续。

我听说这个错误是由于 3TB 硬盘(我有)无法在 Ubuntu 上正常工作而发生的。但是,当我之前遇到这个错误时,我以某种方式绕过了它,最终在我的普通C:驱动器上有 2TB,在新的分区驱动器上有 700~GB。

我不记得做过任何事情来刺激这种情况,但我只假设这是上次我在排除故障时发生的,最终导致它将那 700~gb 分割到另一个驱动器上。

还有一个小问题,Ubuntu 会这样做吗?还是我需要这样做,因为 Ubuntu 无法处理 3TB 硬盘,必须强制硬盘变成 2TB 左右才能轻松使用?我并不确切知道为什么需要这样做,也不知道这是否是它自己造成的。

我对 Linux 领域还比较陌生。

答案1

您需要备份并获取更多信息。其他答案都假设您使用的是 MBR,但您评论说您正在使用 UEFI 固件,这表明您已经在使用 GPT。如果是这种情况,那么您收到的错误消息就是一个错误。您可以通过多种方式检查分区表类型,具体取决于您使用的分区工具。在 Linux 中,一种简单的方法是键入sudo parted -l并查找如下输出:

Partition Table: gpt

此输出表示 GPT 磁盘。MBR 磁盘将指定msdos而不是gpt。一旦确定了磁盘类型,您就可以继续操作而无需猜测。您可能正在使用 MBR 和 Windows 的 BIOS 模式启动,但最好在做任何激进的事情之前先确定一下。

Windows(据我所知,包括 Windows 8)将其启动模式(BIOS 与 EFI)与其分区表类型(MBR 到 GPT)绑定在一起。因此,从 MBR 切换到 GPT 将需要将 Windows 转换为以 EFI 模式而不是 BIOS 模式启动。这增加了任务的复杂性——事实上,这里描述太多了。有关更多信息,请参阅本文。除非你绝望,否则我不建议尝试这个,尽管在很多方面它确实是更好的解决方案。

有时可以使用 MBR “捏造”一些东西,以便从中获得不到 4TiB 的空间。为此,您必须将超过 2TiB 标记的所有内容分配给分区。对于您而言,如果您使用的是 MBR,并且现有分区已达到最大容量,则可以将磁盘上的最终分区缩小一点(1MiB 是许多新工具中实际可用的最小值)。然后,您可以创建最终分区,使其从 2TiB 标记之前开始并延伸到磁盘末尾(或者,如果 2TiB 较小,则将其大小设置为 2TiB)。请注意,如果您想在 Linux 中使用多个分区,则需要将除最后一个分区之外的所有分区完全放在 2TiB 标记以下,因此您可能需要将最终现有分区缩小超过 1MiB。此外,请注意,这种方法有点“随意”。考虑到 MBR 数据结构的设计方式,它在技术上是合法的,但有些操作系统无法使用它。据我所知,Linux 和最新版本的 Windows 都可以使用它,但如果您需要将磁盘用于更奇特的东西,它可能会表现得很奇怪。

如果事实证明您已经在使用 EFI 模式启动和 GPT,那么您收到的错误消息代表了一个错误。我不确定您如何解决这个问题,但缩小最终现有分区(如 MBR 解决方案中)可能会奏效。除此之外,提交错误报告是必要的。

答案2

您应该使用较小的分区,每个分区不超过 2TB。这是因为 MBR 可以精确地寻址您在单个分区中写入的 4294967295 个 512 字节块,这略大于 2TB。

或者,您可以使用 GPT 分区表而不是 MBR,但如果您计划使用 Windows 7,则 UEFI 是必需的(Windows 8 和 Linux 没有这样的限制)。

答案3

我遇到了完全相同的问题,可以使用 Ubuntu live 选项并在 shell (Strg+Alt+T) 中输入“sudo gparted”,然后将 Ubuntu 分区的标志设置为启动(右键单击 Ubuntu 分区并将标记设置为“管理标志”),因为在此之前 Windows 分区标志设置为启动。重启后,一切都恢复原样。

相关内容