我最近用 (Asus)UEFI 和两个 SSD 作为启动驱动器,以及一个 HDD 作为存储,构建了一个新系统。我通过 UEFI 在第一个 SSD 上安装了 Windows,它运行良好,我已经使用了几个星期了。但是,当我进入 UEFI 设置时,它没有给我将第二个 SSD 设置为启动设备的选项,即使在高级模式下也是如此。我改为启动到 live CD(没有问题),并从那里将 ubuntu 安装到第二个 SSD(似乎也没有问题)。
问题是,现在我不知道如何启动 Ubuntu,只能启动 Windows。UEFI 仍然只允许我选择从 Windows SSD 或 DVD 驱动器启动,而且当我打开机器时,Grub 和 Windows 引导加载程序都没有出现。我需要将引导加载程序安装的设备设置为我的 Windows 驱动器吗?
有谁设置过类似的系统,知道是什么原因导致的吗?任何帮助都值得感激。
编辑:我用过易BCD将我的“/boot”分区添加到 Windows 引导加载程序,现在它为我提供了启动到 ubuntu 的选项——但是当我尝试时,它只是给我 Grub 救援提示,而没有实际加载内核。
EDIT2:我按照第一部分中的程序进行操作UEFI 社区文档。我运行了两次引导修复,现在我在启动时得到了 Grub 菜单——但是当我选择任何“Ubuntu”选项时,我得到的只是一个闪烁的下划线。没有提示或任何东西,只是一个带有白色下划线的黑屏。我尝试输入几个命令,但没有任何反馈。
答案1
我的笔记本电脑上有多个操作系统,三个硬盘(HDD1 上安装 Windows 8,HDD2 上安装 Ubuntu LTS 和 Fedora,HDD3/SSD 上安装最新版本的 Ubuntu)。它们都有独立的 EFI 系统分区 (ESP)。
添加缺失的 UEFI NVRAM 条目
假设你的 Ubuntu 安装有一个可正常工作的安装grub-efi
(也就是说,如果启动修复没有用其他东西覆盖它,或者grub-efi
一开始就没有,或者 Ubuntu SSD 上没有 ESP),你可以使用以下命令将 Ubuntu 启动菜单条目添加到 UEFI NVRAM:
sudo efibootmgr --create --disk /dev/sdc --part 1 --label "Ubuntu" --loader \\EFI\\ubuntu\\grubx64.efi
请注意,在本例中sdc
是我的第三块硬盘和--part 1
ESP。如果您的 Ubuntu SSD 是计算机中的第二个驱动器,并且您必须创建可能缺少的 ESP(例如,如果/
Ubuntu SSD 上只有一个根和交换分区),您的参数将是sdb
和--part 3
。
将 grub-efi 重新安装到 ESP 和根文件系统
要重新安装,grub-efi
您可以在 UEFI 模式下启动实时媒体,在该挂载点内分别在 SSD 和 ESP 上挂载 Ubuntu 根文件系统(例如$mountpoint_of_external_root_filesystem/boot/efi
),然后运行以下命令:
sudo grub-install --boot-directory $mountpoint_of_external_root_filesystem/boot/efi /dev/sdc
同样,sdc
这是我的第三块硬盘,请将其替换,并相应地替换 ESP 挂载点的路径。efibootmgr
然后运行并检查是否有ubuntu
条目,如果没有,请efibootmgr
从上面运行命令并再次检查。
由于某种原因,Ubuntu 没有提供默认的 UEFI 引导加载程序,如果缺少 NVRAM 条目(例如在固件更新后,以前称为 BIOS 更新),这可能会给您带来麻烦。您可以EFI/ubuntu
在 ESP 上复制EFI/BOOT
并复制grubx64.efi
或shimx64.efi
命名BOOTX64.EFI
或安装 gummiboot(请参阅相关内容)以备后备。
相关问题和解答
- 如何在 BIOS 启动菜单中删除“Ubuntu”?(UEFI)
- https://askubuntu.com/a/434532/40581关于如何安装和配置的回答Gummiboot 作为默认的热插拔 UEFI 引导加载程序- 我有时间的时候需要写一个干净的版本 :(
答案2
您的问题可能与 UEFI 有关。请按照 UEFI 社区文档第 1 段中的步骤进行操作:https://help.ubuntu.com/community/UEFI
答案3
这为我修复了这个问题:
我最初的设置是将 efi 模式的 Ubuntu 置于非 efi 模式的 Windows 7 之前,它可以正常启动到 Ubuntu,但不能启动到 Windows 7。
自从切换顺序后,我就能完美地启动每个系统了。