我已经尝试过很多次了,但似乎无法让它适应我的情况。基本上,我以前使用 Linux,但现在我只用它来编辑 Ubuntu Studio 中的视频和照片。因此,由于它不再是我的主要操作系统,我不再想使用 GRUB 来选择要启动的操作系统。
换句话说,因为我不经常使用 Ubuntu,所以每次启动系统时都必须选择操作系统,这很烦人。我已经能够修改 GRUB,使其默认启动 Windows 8.1,并缩短了计时器,但 GRUB 首先启动的事实很烦人,我知道一定有解决方法。现在我的解决方法是将其作为虚拟机运行,但在渲染我的 YouTube 视频时,我没有获得那么多的处理能力,它似乎无法识别并因此正确利用我的显卡。我宁愿将它用作真正的操作系统,而不是虚拟机。
那么,在 UEFI 系统上,如果我想加载 Ubuntu Studio,我该如何做?我只需从 BIOS/UEFI 选择安装它的 HDD 作为启动设备?
如果您需要我可能无意中遗漏的任何信息,请告诉我
答案1
首先,抛弃你的 BIOS 假设!在 EFI 下,可引导性的单位是引导加载程序文件,而不是硬盘。也就是说,你不会“选择安装它的硬盘作为引导设备”;而是选择引导加载程序文件对于操作系统来说。这似乎是一个微妙的吹毛求疵的问题,但它是理解 EFI 启动过程(并因此正确操作)的基础。
您应该做的第一件事是阅读计算机手册,仔细检查其启动时提示,或者只是进行简单的实验以弄清楚如何访问计算机的内置启动管理器。通常,这是通过在启动时按下特定功能键来完成的,尽管有时是 Esc 或其他键。(遗憾的是,这绝对没有标准化。)一些计算机实际上没有有用的启动时启动菜单,但大多数都有。您的启动菜单可能包含一个名为的选项,ubuntu
另一个名为Windows boot manager
或类似名称的选项(我不记得确切的名称了),可能还有一些其他条目。验证选择 Windows 项是否直接启动到 Windows 而不启动 Ubuntu。如果选择 Windows 启动 GRUB,或者没有 Windows 选项,事情会变得复杂,所以让我们推迟一下……
如果固件的启动管理器允许您启动 Windows,则您应该启动到 Ubuntu 并键入sudo efibootmgr
以查看在 EFI 中注册的启动程序列表。此列表应或多或少包含启动管理器向您显示的条目。输出还将包括一行名为 的行,BootOrder
显示各种启动程序的使用顺序。以下是我的其中一台计算机的示例:
$ sudo efibootmgr
BootCurrent: 0005
Timeout: 0 seconds
BootOrder: 0005,0004,0000,0006,0001,0002
Boot0000* rEFInd (via shim)
Boot0001* P1: WDC WD10EARS-00MVWB0
Boot0002* P5: ASUS DRW-2014S1T
Boot0004* UEFI OS
Boot0005* rEFInd Boot Manager
Boot0006* UEFI: ADATA USB Flash Drive
这里没有安装 Windows,我使用的是自己的 rEFInd 启动管理器而不是 GRUB,所以没有ubuntu
条目;但重点是您可以看到首先尝试的BootOrder
原因Boot0005
( ),然后是( ),等等。在您的例子中,您应该首先确定 Windows 启动管理器并设置它,然后是您的条目,然后是其他任何条目。您可以使用选项设置,如下所示:rEFInd Boot Manager
Boot0004
UEFI OS
ubuntu
BootOrder
-o
efibootmgr
sudo efibootmgr -o 7,4,5
此示例将设置系统首先尝试第 7 项(我的系统上不存在该项;但就假装它是 Windows 项),然后尝试第 4 项,然后尝试第 5 项。重新启动时,您应该会看到 Windows 自动出现。要启动 Ubuntu,您可以按住用于进入固件启动管理器的键,然后使用它来启动 Ubuntu。
我之前说过,如果您无法进入该菜单或选择 Windows 条目启动到 GRUB,事情就会变得复杂。后一种情况是由 Boot Repair 工具中的某些选项引起的,这些选项会重命名 GRUB,使其采用 Windows 引导加载程序通常采用的名称。这在某些系统上是解决 EFI 错误所必需的,但有时不必要地应用此选项。(一年前这种情况很常见,当时它是 Boot Repair 的默认设置。)您也可以手动或通过其他工具进行类似的重命名。解决方案是撤消这些操作。在 Boot Repair 中,选择高级菜单并使用选项将备份文件恢复为其原始名称。如果您需要更多帮助,请询问。
如果您找不到固件的内置启动管理器,您可能需要做其他完全不同的事情。我相信 GRUB 中有一个选项可以将超时设置得很低,并隐藏菜单,除非按下任何键。您可以这样做,同时将 Windows 设置为默认启动选项。不过,我不知道如何实现这一效果。另一个解决方案是安装我的rEFInd 启动管理器然后编辑/boot/efi/EFI/refind/refind.conf
,取消注释该timeout
行并将其设置为-1
;并取消注释并调整default_selection
默认启动 Windows 的选项。
答案2
如果您的第二块硬盘被视为 USB 之类的“可移动媒体”,那么它可以拥有自己的 EFI 分区,并使用默认的引导加载程序 /EFI/Boot/bootx64.efi。对于非安全启动,请将未签名的 grubx64.efi 复制为 bootx64.efi。对于安全启动,请将 shimx64.efi 复制到 bootx64.efi,并将签名的 grubx64 的副本也放入 /EFI/Boot。将 grub.cfg 文件放在 /EFI/ubuntu 中,您就应该有一个可用的 UEFI 启动设备。将其放在启动顺序中的 Windows 启动之后,然后您必须通过 efi 启动菜单选择它。即使将 EFI 分区作为引导加载程序的位置,将 grub 安装到 USB 磁盘也可能会失败,但您可以自己创建目录并复制文件,或者依靠启动修复来执行此操作。