我买了这台电脑,想在上面安装 Ubuntu。问题是我已经 3 周多没有成功了。这台电脑自带的 UEFI 功能非常有限。它无法切换到 遗产并且没有选择选择可信任的 UEFI 文件执行。唯一可以做的就是启用/禁用安全启动。
现在谈谈问题。我首先尝试以自动模式安装 Ubuntu,然后也尝试手动分区其他东西. 在这两种情况下,安装时都会崩溃grub2 到 /dev/sda计算机挂起。
然后我决定不使用引导加载程序进行安装无处不在-b。一切顺利,安装顺利完成。最后,我尝试使用grub 安装. 在这里我又回到了同一个问题——计算机挂起。
因此问题出在 efibootmgr 尝试在 UEFI 中注册新条目时。我还通过运行以下命令确认了这一点:
_sudo efibootmgr -c -d /dev/sda -p 1 -w -L ubuntu_
之后它再次挂起。
我对如何使其发挥作用的想法如下:
在没有引导加载程序的情况下安装 Ubuntu,手动安装引导加载程序而不尝试向 UEFI 注册新条目,将引导加载程序从/EFI/Ubuntu/到/EFI/启动/并将其重命名为启动盘。那么我几乎确信它会起作用。
有人能就如何做提供建议吗:
履行grub 安装无需尝试注册新的 UEFI 条目启动管理器这样它就能通过并且不会使计算机冻结?
哪些文件来自/EFI/Ubuntu/我应该复制到/EFI/启动我应该将其中哪一个重命名为启动盘?
如果这不是好办法,那么有什么更好的解决办法呢?
谢谢您的任何建议。
答案1
该问题可以按如下方式解决:
以测试模式启动 Ubuntu Live DVD/USB 并打开终端
通过以下方式运行安装过程而不安装引导加载程序:
sudo ubiquity -b
Continue testing安装完成后按。
将新安装的文件系统挂载到
/mnt
:sudo mount /dev/sda2 /mnt sudo mkdir /mnt/boot/efi sudo mount /dev/sda1 /mnt/boot/efi for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
(其中sda2
是根分区,sda1
是 EFI 系统分区)
通过以下方式加载 efivars:
sudo modprobe efivars
重新安装
grub-install
64 位版本sudo apt-get install --reinstall grub-efi-amd64 sudo grub-install --no-nvram --root-directory=/mnt
更改 root 权限
/mnt
并更新 grubsudo chroot /mnt update-grub
移动并重命名已安装的引导加载程序
cd /boot/efi/EFI cp -R ubuntu/* BOOT/ cd BOOT cp grubx64.efi bootx64.efi
重新启动系统。
更多详细信息请参见:
答案2
首先,我强烈建议您提交一份有关您的问题的错误报告,如下所述这里。虽然不能保证这会产生积极的结果,但如果没有错误报告,开发人员就不太可能解决问题。
其次,您说您手动使用以下命令尝试将 GRUB 注册到固件:
sudo efibootmgr -c -d /dev/sda -p 1 -w -L ubuntu
但是,该命令缺少一个重要参数:-l {filename}
。另外,我以前从未见过-w
它是一个必需选项,因此可能应该删除它。总的来说,您的命令应该是:
sudo efibootmgr -c -d /dev/sda -p 1 -L ubuntu -l \\EFI\\ubuntu\\grubx64.efi
如果您确定文件已安装,并且希望能够在安全启动处于活动状态的情况下启动,请更改grubx64.efi
为。鉴于主操作系统安装冻结,我怀疑此更改是否有用,但值得一试。shimx64.efi
shimx64.efi
至于其余部分,我相信--no-nvram
选项grub-install
应该会阻止它尝试通过更新 NVRAM 变量efibootmgr
。页面上没有提到此选项man
,但我相信这是一个有效的选项。
您可能还想咨询我的 Linux EFI 引导加载程序页面,尤其是它的有关如何安装引导加载程序的子页面。这些将为您提供有关这些操作的“基本细节”如何进行的一些背景知识。您甚至可能希望使用 GRUB 2 以外的其他程序作为引导加载程序。
要使用默认文件名启动,您应该将所有内容复制/boot/efi/EFI/ubuntu
到该目录/boot/efi/EFI/BOOT
并重命名grubx64.efi
为bootx64.efi
。或者,您可以使用备用文件名安装其他内容。一个主要警告是,如果计算机已经启动 Windows(或其他操作系统),则此方法可能不起作用。在这种情况下,您可能需要“劫持”Windows 引导加载程序,将其替换为 GRUB 2(或您想要使用的任何程序),并将 Windows 引导加载程序移到其他地方。
答案3
确实可以通过劫持默认 (Windows) 引导加载程序在 Acer ES1-533 上安装和启动 Linux,如 Sladek90 所述,Rod Smith 的优秀网站也详细介绍了这一点。但是,这不是必需的。
更好的方法是安装 Linux无需写入 NVRAM,因为 efibootmgr 的写入(几乎所有发行版都这样做)将冻结系统(只能读取)。
解决方案是使用 rEFInd 实时系统(例如 USB 棒),启动它,打开 UEFI shell,然后使用 bcfg 生成所需的 UEFI 条目, 例如:
bcfg boot add 2 fs0:\EFI\ubuntu\grubx64.efi "GRUB Loader"
这会在位置 2 处为 GRUB 添加一个启动项。当您重新启动并按 F12 时,您可以选择启动 GRUB(然后是 Ubuntu)或 Windows!