配置 NTLDR 以便我可以不使用 grub 进行双重启动?

配置 NTLDR 以便我可以不使用 grub 进行双重启动?

我恢复了 Windows,但在此过程中丢失了 ubuntu 9 的 grub。现在我想更改 NTLDR,以便可以进行双重启动。有人可以帮忙吗?

答案1

我不确定你到底想做什么。如果你想恢复 GRUB 以便再次启动 Ubuntu,请按照此处的 Ubuntu 社区文档进行操作:安装 Windows 后恢复 Ubuntu。如果您想使用 NTLDR 启动,并且列表中有 Ubuntu 选项,请按照以下指南操作:如何使用 NTLDR 实现 Windows NT/2000/XP 和 Linux 双启动

答案2

这是一个非常复杂的过程。如果你做错了什么,你就会被锁定在自己的电脑之外。恢复可能非常耗时。准备好承受几个小时的痛苦和恐惧吧!

第一的,请准备一些应急启动媒体,例如您原来的 Linux 安装 CD/DVD 或 USB 笔式驱动器。某些 Linux 发行版具有恢复模式,该模式允许您将安装连接到启动提示符(即 chroot),从而允许您恢复 Linux 启动能力(例如:从 chroot 运行 grub-install),或者直接从安装启动(罕见)。

另一件需要准备的事情是超级GRUB或者重新索引或者三叶草

此外,准备好 Windows 安装 DVD 或笔式驱动器以供恢复选项。

另一件需要考虑的事情是拥有另一台电脑,至少可以让您在互联网上搜索一些信息。理想情况下,这是一台电脑,因为它还允许您在需要时将一些文件复制到 USB 笔式驱动器。iPad 或 Android 平板电脑等平板电脑仅适用于互联网搜索,而不能用于此类复制操作。

下一个,尝试所有选项:在您打算使用它们的计算机上启动所有 CD/DVD 和 USB 笔式驱动器。有些可能不起作用,因此您必须决定是否重试或是否跳过使用它们。

然后(只有这样)你才可以安全地开始:本博客文章介绍了如何将 Linux 引导加载程序 GRUB 添加到 Windows 7 的启动选项中。它可能适用于更高版本的 Windows,也可能不适用。但是,既然BCDEDIT已经使用,那么它很有可能也适用于更高版本。但是,所述方法使用基于 BIOS 的启动,即分区启动扇区,这不会使其在基于 EFI 的系统下(那么容易)工作。

从这里可以看出,多年来启动变得多么复杂:我们有基于 BIOS 的启动,即使用主引导记录 (MBR) 和引导扇区。但是,我们现在也有基于 (U)EFI 的启动 – (通用)可扩展固件接口,古老 BIOS 的后继者,使用 EFI 系统分区 (ESP) 和适当的 EFI 可执行文件。系统是 32 位 EFI 还是 64 位 EFI 有很大区别 – 错误的架构将无法工作。然后我们有混合安装,因为 EFI 系统通常还具有兼容性支持模块 (CSM),它使用引导扇区模拟旧 BIOS 启动行为。因此,在 EFI(带有 CSM)上,您可以通过两种方式启动:使用 CSM 和引导扇区或使用 ESP 和 EFI 可执行文件作为引导加载程序。

我自己目前也在尝试使用 Windows 引导加载程序来启动 GRUB。我使用基于 EFI 的系统,该系统使用来自 ESP 的 EFI 加载程序启动两个操作系统。但 Windows 7 是使用与 BIOS 兼容的 EFI-CSM(兼容性支持模块,即 EFI 下的 BIOS 仿真)启动的。因此,Windows 7 是 1) 通过混合 MBR 分区启动的,2) 通过该分区的 VBR 启动的。现在,从此配置启动 Linux 使一切变得更加复杂,因为 Linux /boot 分区位于非混合 GPT 分区上。(我为什么要这样做呢?因为使用 CSM 时,VGA BIOS 也包含在 Linux 中以加载 DRM,而仅使用 EFI 启动时不存在 DRM。添加第二个 CSM 启动选项也并非没有复杂性,我有两个选择:使用从 Windows 和 Linux 的引导扇区启动的 PC-GRUB,或者从 Windows 引导加载程序中启动 Linux。)

就我的具体情况而言,很可能无法设置这样的启动配置……

我知道这其实没什么帮助,但如果你尝试一下的话确保有一个启动系统的备份计划。 祝你好运!

答案3

在 BIOS 模式(不是 UEFI!)下,与 NTLDR 一起工作的是设置 GRUB 以进行 MBR,但保留原始 MBR 并将修改后的 GRUB 的 MBR 安全地保存到一个文件中,然后将此文件添加到boot.iniNTLDR。

原始来源可以在这里找到这里

步骤:

  1. 备份原始 MBR。在 Linux 中,请执行dd if=/dev/sda of=/tmp/mbr_saved.bin bs=512 count=1(以 root 身份或使用sudo
    当然,您必须在 Windows NTLDR 和原始 MBR 仍然存在时执行此操作。因此,这必须从 Linux LiveCD 或类似设备(USB 拇指驱动器)执行。将此 MBR 保存到安全的地方(USB 笔式驱动器或类似设备)以供日后使用!
  2. 像往常一样安装 Linux,但不要选择将 GRUB 安装到 MBR!相反,让它驻留在 Linux 分区的引导扇区中,或者根本不安装它。只需确保您有办法再次引导到此 Linux,至少通过chrootLiveCD(或类似方式)引导。
  3. 现在,启动 Linux(或 chrooted),手动将 GRUB 安装到 MBR。与上述方法相同,将此 MBR 保存到文件(例如grub2.mbr),该文件位于 Windows 安装的根目录中(在 Windows 术语中,NTLDR 和 boot.ini 位于其中C:\)。
  4. 恢复原始 MBR,但不恢复分区表 — 因为它将在 Linux 安装后被修改...
    dd if=mbr_saved.bin of=/dev/sda bs=1 count=446
    确保 Windows 分区具有活动或“可启动”标志,例如使用fdisk
    另一种方法是使用 Windows XP 安装光盘。在救援可以开始命令行提示符(“恢复控制台”+登录到已安装的 Windows 直到看到命令行),这里fixmbr也应该恢复原始 MBR 代码而不修改分区表。
  5. 将 GRUB MBR 文件添加到 boot.ini:c:\grub2.mbr="GRUB2 Bootloader"

注意:这仅适用于 NTLDR,因此适用于 Windows NT 至 Windows XP (NT 5.1)。从 Vista 开始,使用 BootMgr,所述方法将不再有效!

相关内容