无法在与 Windows 的多重启动中通过 EasyBCD 启动 Ubuntu 17.04

无法在与 Windows 的多重启动中通过 EasyBCD 启动 Ubuntu 17.04

在分区 (hd0,5) 中安装带有引导加载程序的 Ubuntu 17.04 后,我无法通过 EasyBCD 2.3.207(我首选的引导加载程序)启动它。我在安装 Windows 之后安装了 Ubuntu,并且不想在第一个磁盘的 MBR 上使用 grub。我可以通过 Super Grub Disk 启动 Ubuntu,但当我尝试通过 EasyBCD 启动时,无论是自动选择还是手动选择分区,它最终都会出现 Grub> 提示符。以下命令也无效:Root=(hd0,5) chanloader +1 boot

Now I am in Grub rescue > prompt. Interestingly, I now can boot into Ubuntu by:
set prefix=(hd0,6)/boot/grub
set root=(hd0,6)
insmod normal
normal

这给了我 grub 菜单,我可以选择其中的任何选项。问题是每次启动时都不可能这样做,或者使用超级 Grub 磁盘。我如何使用 BCDedit 或 EasyBCD 或 Neogrub 引导加载程序自动执行此操作(通过操作 Neogrub 的 menu.lst 文件尝试过,但没有成功)。

请帮忙,

谢谢,

西班牙小吃

答案1

终于成功了。我通过 bcdedit 在 Windows 引导加载程序中创建了一个条目,成功启动了 Ubuntu 17.04。因此,olfred 所说的“我相信 bcdedit 只适用于 UEFI”是不正确的。我也没有更新包含 Windows 7 的主磁盘的 MBR,因为这是我最不想做的事情。但是,我很感激 olfred,因为从他的评论中我猜想我在使用 grub4dos 或 Easybcd 的 neogrub 引导加载程序上浪费了时间。

详细步骤如下 - 首先禁用 Windows 的快速启动。

  1. 通过 Super Grub Disk 启动 ubuntu 分区。它是 (hd0,5)、sda6
  2. 它进入了 Grub 救援提示>
  3. 我通过以下方式启动 Ubuntu:set prefix=(hd0,6)/boot/grub set root=(hd0,6) insmod normal normal
  4. 这给了我 grub 菜单,我按下其中的第一个条目“ubuntu”即可正常启动。
  5. 通过以下方式在 ubuntu 分区中再次安装 grub:sudo grub-install dev/xxxy --force (xxxy 由 gparted 确定)(在我的情况下为 sdc6)
  6. 更新 grub : sudo update-grub
  7. 通过 Control + Alt + T 打开终端
  8. 通过以下方式创建临时挂载点:1. sudo su 2. mkdir /mnt/tmp
  9. 然后将代表我的磁盘中已经存在的 114 GB NTFS 分区的设备安装到此安装点(我想可以通过这种方式使用任何 NTFS 分区):mount -t ntfs-3g /dev/xxxy /mnt/tmp(xxxy 由 gparted 确定)(在我的情况下为 sdb7)
  10. 将 ubuntu 分区的前 512 个字节复制到 .bin 文件:dd if=/dev/xxxy of=/mnt/tmp/ubuntu.bin bs=512 count=1 (xxxy 由 gparted 确定) (在我的情况下是 sdc6)

  11. 退出终端并重新启动进入 Windows 7。

  12. 将 ubuntu.bin 文件从位于 sdb7 的 Windows 10 Pro 分区剪切并粘贴到 Windows 7 的根目录 (c:)

  13. 以管理员权限打开 cmd(开始 > 运行 > 框中的 cmd > 右键单击​​ cmd > 以管理员身份运行)

  14. 为 Ubuntu 创建菜单项:bcdedit /create /d “ubuntu” /application bootsector 返回此条目的 ID。打开记事本文件,输入条目并保存。这有助于复制粘贴需要输入的 ID 而不会出错。

  15. 指定哪个 Windows 分区包含 ubuntu.bin 文件:bcdedit /set {ID} 设备分区=c:

  16. 然后是 ubuntu.bin 文件的路径:bcdedit /set {ID} path \crunch.bin

  17. 指定 ubuntu 条目应在启动菜单的最后显示:bcdedit /displayorder {ID} /addlast

  18. 指定显示启动菜单的时间:bcdedit /timeout 15

  19. 退出 bcdedit

  20. 重新启动

  21. 在启动菜单的末尾,现在有一个新的条目“ubuntu”

  22. 已选择并输入。

  23. Grub 菜单出现了。

  24. 选择第一个条目 – ubuntu

  25. 出现 Ubuntu 桌面。

感谢:1. Linux → 由 Iceflatline 在联想 T410 笔记本电脑上安装和配置 CrunchBang Linux。

答案2

我找到了另一种方法来实现相同的目的,这种方法稍微简单一些。同样,您的 MBR 保持不变。

  1. 使用 EasyBCD 在 BCD 中添加 Linux Ubuntu 条目。这将在您的 Windows 启动分区(系统保留)中添加两个文件:文件 ANGx 和 NST/AutoNeoGrubx.mbr,其中 x 是 BCD 中 Linux 菜单条目的计数器。

  2. 以任何可以的方式启动 Ubuntu,使用实时系统或 OP 描述的 grub 提示符。

  3. 在终端中执行以下命令(其中 XY 是从 fdisk -l 识别的磁盘/分区号,例如 /dev/sda2)

    sudo su
    install-mbr /dev/sdXY
    grub-install /dev/sdXY   
    update-grub
    
  4. 转储分区引导扇区的副本,但大小为 9216 字节,而不是 512 字节。原因是核心镜像驻留在额外字节内的文件。

    dd if=/dev/sdXY of=sdXY.bin bs=9216 count=1
    
  5. 将此文件传输到 Windows(例如使用 USB 记忆棒)并重新启动 Windows。用转储的 sdXY.bin 文件替换 NST/AutoNeoGrubx.mbr。

重新启动并享受。

我也建议进行启动修复,但仅用于验证而不是修复。

请注意,此过程仅适用于具有 BIOS/MBR 配置的系统,而不适用于 BIOS/GPT 或 UEFI/GPT。我知道推荐的解决方案是将 GRUB 安装到 MBR 中,但这种替代处理方式多年来对我来说一直很安全。

答案3

除了技术术语之外,您可能希望尝试以下操作:在此处输入图片描述

当我终于注意到问题所在时,我一直忽略了显而易见的事实:Windows 中两个驱动器的驱动器号相同是大忌。NeoSmart 一直将驱动器号“C”分配给我想要启动的 Linux 驱动器。我的 Windows 中已经有驱动器“C”。解决方案:转到“工具”,您将看到“文件工具帮助”。确保 Easy BCD 位于您要使用的选定驱动器上,然后找到“BOOT”。忽略所有驱动器号并选择“BOOT”。不要通过,不要收取 200 美元。选择“BOOT”并保存您的设置。现在重新启动您的 PC。您应该会发现您的启动菜单运行良好,并且此方法也适用于 UEFI/BIOS。

相关内容