为什么我得到“超过 msdos-partition-table-imposed 的最大值”?

Rob*_*ale 5 partitioning hard-drive system-installation

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

starting sector number, 4294967296 exceeds the msdos-partition-table-imposed maximum of 4294967295
Run Code Online (Sandbox Code Playgroud)

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

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

我不记得做了什么来刺激这个,但我只是假设这是在我上次对情况进行故障排除期间,最终导致它把 700~gb 拆分到另一个驱动器。

还有一个关于此的小问题,Ubuntu 是这样做还是我需要这样做,因为 Ubuntu 无法处理 3TB 硬盘驱动器并且必须强制硬盘驱动器变成 2TB 左右才能轻松使用它?我不完全知道它为什么需要它,以及它是否可能是它自己造成的。

我对 Linux 场景比较陌生。

Rod*_*ith 5

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

Partition Table: gpt
Run Code Online (Sandbox Code Playgroud)

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

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

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

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


Pav*_*l A 1

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

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