Grub 无法在 3TB 驱动器上启动 Windows 7 加载程序条目

Grub 无法在 3TB 驱动器上启动 Windows 7 加载程序条目

它失败了,显示“找不到设备”。如果我重新安装 Windows 并使用 EasyBCD 之类的东西,它将再次工作。但我只想使用 grub 作为加载器,有人能帮我吗?我的系统有一个常规 BIOS(p35-ds4 主板),所以不支持 UEFI。

之前曾运行 Windows 8 和 ubuntu 13.04,现在想再次运行 Windows 7 和 ubuntu 13.10。

我正在使用磁盘 /dev/sda。

3000.6 GB, 3000591900160 bytes
255 head, 63 sectors/track, 364801 cylinders, 5860531055 sectors
Sector size (logical/fysical): 512 bytes / 4096 bytes
Device  Begin End Blocks ID System
/dev/sda1            2048   419432447   209715200   83  Linux
/dev/sda2       419432448   436013055     8290304   82  Linux swap
/dev/sda3       436015102  1576339455   570162177    5  extended
Partition 3 does not start on a fysical sector limit.
/dev/sda4   *  1576339456  5860530175  2142095360    7  HPFS/NTFS/exFAT
/dev/sda5       436015104   855443455   209714176    7  HPFS/NTFS/exFAT
/dev/sda6       855445504  1576339455   360446976    7  HPFS/NTFS/exFAT

答案1

首先,您的配置对 MBR 数据结构的处理“过于随意”。MBR 通常被认为限制为 2TiB 磁盘,但实际上分区起始点和大小的值限制为 2TiB,因此理论上它可以处理略低于 4TiB 的磁盘,尽管最后的 2TiB 在一个分区中。在您的 3TB(2.7TiB)磁盘上,最大和最终分区的大小约为 1TiB,起始位置约为 1.7TiB。因此,它符合 MBR“规则”,但一些操作系统和实用程序在显示此磁盘时会出错。在我的测试,Linux 和 Windows 7 都可以处理此配置,但大多数其他操作系统则不行。不过,我的测试有限;即使在 Linux 或 Windows 7 下,某些实用程序也可能在此磁盘上失败,并可能损坏您的数据。事实上,我猜 GRUB 就是这种情况,尽管我对此并不确定。总的来说,我不得不建议在更大的磁盘上使用 GPT。

话虽如此,我意识到如果你试图在一台使用传统 BIOS 而非 EFI 的旧电脑上使用 3TB 磁盘,你可能会遇到麻烦。在这种情况下,最好的选择是使用一个较旧且较小的磁盘作为 Windows 启动盘,以及一个辅助 GPT 磁盘来保存数据、程序和 Linux。另一个选择是使用二重唱或者三叶草让基于 BIOS 的计算机以 EFI 模式启动。DUET 和 Clover 都可以看作是 BIOS 启动加载程序,它们为 BIOS 计算机添加了 EFI 功能。不幸的是,它们都不容易安装,而且上次我检查时,它们在大多数 AMD 计算机上都存在问题。(它们更有可能在基于 Intel 的系统上运行。)

我不确定,但我怀疑您遇到的问题是由于您的启动分区超出了硬盘的末尾。因此,如果您真的必须按原样运行,我的建议是重新排列您的分区,以便 Linux 和 Windows 启动分区完全位于 2TiB 标记以下。将该点以外的空间用于数据或程序分区。

如果您的主板支持 EFI 模式启动,更好的选择是切换到 GPT 并以 EFI 模式启动。这一页介绍了如何将 Windows 转换为以 EFI 模式启动。Linux 往往更容易一些;您只需安装以下几种Linux 的 EFI 引导加载程序。GRUB 2 就是其中之一,尽管重新索引手动安装可能更容易。请注意,自 2011 年中期以来销售的大多数计算机都使用 EFI,尽管 Windows 8 发布之前销售的大多数计算机默认以 BIOS 模式启动。甚至一些 2011 年之前的计算机也支持 EFI 模式启动。

相关内容