Xubuntu / 除非在 BIOS 中导航到 EFI 文件,否则无法启动

Xubuntu / 除非在 BIOS 中导航到 EFI 文件,否则无法启动

自从我尝试用 Xubuntu 14.04 替换预装的 Windows 7 后,我的笔记本电脑 (HP ProBook 450 G2) 出现了启动问题。BIOS 使用 UEFI 启动模式(但尝试“Legacy”启动模式并没有使情况有所改善)。

无论我怎么尝试,我都无法让它自己找到根分区的路径。它只是说:

“未找到 BootDevice 请在硬盘上安装操作系统。硬盘 - (3F0)”...

但是,我的 Xubuntu 根目录已正确安装,因为如果我每次(启动时)都通过 BIOS 启动选项正确导航,我就能设法在其上启动:

我选择“从 EFI 文件启动”,然后

“Acpi(PNP0A03,0)/Pci(1F|2)/Sata(端口 0)/HD(Part1,Sig81D20AD3-C00E-47C2-ACEC-BC1F51”

,然后"EFI""ubuntu"然后"grubx64.efi",然后它设法到达 grub,最后成功启动 Xubuntu。选择 shimx 也会导致在我的 xubuntu 根分区上启动。但是重新启动并让它自行运行会失败,并显示上述消息。

我听说该"secure boot"选项必须被禁用,而且似乎确实如此。

我的分区组织如下:

/dev/sda1 fat32 121MB 启动

/dev/sda2 ext4 465GB 根

/dev/sda3 linux-交换 7MB

我尝试使用启动修复实用程序重新安装 grub,但没有任何改变。

顺便说一下,这里是来自 boot-repair 的启动信息摘要:http://paste.ubuntu.com/9595800/

启动修复总是会说"Please do not forget to make your BIOS boot on sda1/EFI/ubuntu/shimx64.efi file!",但我不知道还能做什么来让它启动。

我认为我的 MBR 可能已损坏,因此我使用以下 dd 命令将其删除:

dd if=/dev/zero of=/dev/sda bs=446 count=1

然后尝试用 boot-repair 再次修复启动,但是结果还是一样......

我甚至尝试修改 EFI 文件并创建新的启动项,但无济于事。之后,以下是使用 efibootmgr 的状态:

~$ sudo efibootmgr -v

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* Notebook Hard Drive   BIOS(2,0,00).......................................................................
Boot0001* Notebook Hard Drive   BIOS(2,0,00).......................................................................

因此我再次尝试在 EFI 文件中创建一个新的启动条目:

~$ sudo efibootmgr -v -c -w -L ubuntu_14_04 -l \EFI\ubuntu\shimx64.efi
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0002,0000
Boot0000* Notebook Hard Drive   BIOS(2,0,00).......................................................................
Boot0001* Notebook Hard Drive   BIOS(2,0,00).......................................................................
Boot0002* ubuntu_14_04  HD(1,800,100000,81d20ad3-c00e-47c2-acec-bc1f51dd12d1)File(EFIubuntushimx64.efi)

...并更改启动顺序,以在刚刚创建的新条目上启动:

~$ sudo efibootmgr -v -o 2,1,0
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0002,0001,0000
Boot0000* Notebook Hard Drive   BIOS(2,0,00).......................................................................
Boot0001* Notebook Hard Drive   BIOS(2,0,00).......................................................................
Boot0002* ubuntu_14_04  HD(1,800,100000,81d20ad3-c00e-47c2-acec-bc1f51dd12d1)File(EFIubuntushimx64.efi)

但重新启动后(当然,仍然需要浏览 EFI 启动选项以使其工作):

~$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* Notebook Hard Drive   BIOS(2,0,00).......................................................................
Boot0001* Notebook Hard Drive   BIOS(2,0,00).......................................................................
Boot0002* ubuntu_14_04  HD(1,800,100000,81d20ad3-c00e-47c2-acec-bc1f51dd12d1)File(EFIubuntushimx64.efi)

这就如同我丢失了我所设定的订单一样。

有人有什么想法吗?

答案1

如果不将启动项添加到 Bootloader 中,则很难启动 Ubuntu。但由于您可以手动启动 Ubuntu,因此您可以使用另一个启动加载程序 rEFInd。如何在 Ubuntu 中安装 rEFInd:

sudo apt-add-repository ppa:rodsmith/refind
sudo apt-get update
sudo apt-get install refind

更多信息请点击这里:http://www.rodsbooks.com/refind/

答案2

这对我有用 HP UEFI 无法自动启动 Ubuntu

我在 bios 中添加了自定义启动值 (EFI\ubuntu\grubx64.efi),现在它会自动启动到 ubuntu。

答案3

您的命令中犯了一个小错误:

sudo efibootmgr -v -c -w -L ubuntu_14_04 -l \EFI\ubuntu\shimx64.efi

因为斜杠是 bash 中的元字符,所以传递的实际值是:EFIubuntushimx64.efi

您应该将路径放在引号中或使用双斜杠,以下方法对我有用:

sudo efibootmgr -c -l "\EFI\ubuntu\shimx64.efi"

答案4

您是否尝试过在 tty 或终端中输入以下内容:

     sudo apt-get purge -y --force-yes shim-signed-efi grub* shime-signed-generic 

    sudo apt-get install -y --force-yes  shim-signed-efi shim-signed-amd64 shim-signed-generic 

然后在 tty 或终端中输入以下内容:

    sudo  apt-get update 

    sudo apt-get upgrade 

这样也许能很好地发挥作用。

相关内容