2012-01-09 16:37:51 +0000 2012-01-09 16:37:51 +0000
56
56

如何重装GRUB2 EFI?

在成功更新了BIOS后,出了点问题,结果左上角的黑屏上有一个闪烁的光标。没有错误,也没有什么。现在BIOS只列出了一个SATA: <disc name>启动选项,而不是通常的UEFI ubuntu启动选项。我使用的是GPT分区方案。

我最终发现可行的解决方案是正确地重新安装grub-efi-amd64。那么,我该怎么做 ?

PS:其实,我自己成功地重装了GRUB2 EFI,由于找不到完整的方法,我将在这里发布我的答案。

答案 (5)

87
87
87
2012-01-09 16:39:36 +0000
  • 用live-USB/CD启动电脑在UEFI模式下启动。我有两个启动选项<flash_drive>UEFI: <flash_drive>,第二个选项是需要暴露/sys/firmware/efi/中的EFI变量,这样efibootmgr以后就不会失败了。用第一个选项启动时,我得到了以下错误:

  • chroot into the broken system (类似于ubuntu grub2 help,但有EFI的特殊性):

  • 根据你的linux发行版,你现在做的事情不一样。

  • 现在键入Ctrl+D退出chroot,卸载一切并重新启动:

你可能需要根据你的需求来调整(不同的分区表,独立的/boot分区等),这可能不是唯一的选择,但对我来说,这对我来说很好。还有一个广泛的指南关于如何设置一个可启动的USB设备,其中Mac部分实际上是最有用的(只需创建一个FAT32分区,复制文件,重启,就可以了)。

5
5
5
2014-03-20 00:27:02 +0000

和Maxine一样,我发现BIOS中的UEFI设置被破坏,机器无法启动。我的操作系统是通过USB安装的linuxmint-201403-mate-dvd-64bit。(请看下面关于导致UEFI无法工作的事件的完整描述)

在ThinkServer TS140上进行同样的步骤,并没有导致UEFI失去理智,甚至一次也没有。看了一下RD430的驱动页面,我的bios已经有两个版本了。我从来没有在主板上更新过BIOS,所以我不是一个会在有新版本时自动更新的人。更新了BIOS后,上面Maxine的回答起了作用,只是有一个问题…..

# efibootmgr -c --disk /dev/sdX --part Y
# efibootmgr -v
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0002,0000,0003,0001,0004
Boot0000* linuxmint HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\EFI\linuxmint\grubx64.efi)
Boot0001* LMDE Linux Mint Debian HD(1,800,15d505800,934c598c-fe3c-fd43-84a1-fa38e4f72552)File(\EFI\linuxmint\grubx64.efi)
Boot0002* Linux HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\elilo.efi)
Boot0003* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)AMBO
Boot0004* UEFI: VerbatimSTORE N GO 1.00 ACPI(a0341d0,0)PCI(1a,0)USB(1,0)USB(4,0)HD(1,80,1d70780,00000000)AMBO
mint / #

efibootmgr -c命令中增加了两个条目00000002! 开机顺序中Boot0002* Linux HD条目排在第一位不正确。果然,不出所料,没有成功。于是我重新启动了服务器,点击F12,选择了0000。果然如愿以偿,它确实启动到了我的LMDE安装。

通过efibootmgr删除不需要的条目的方法是:

# efibootmgr -b 2 -B

我用这个命令删除了0002linuxmint条目。


UEFI注意事项

如果你正在阅读这篇文章,并且和我一样对UEFI感到沮丧,这里有一些注意事项和资源: “ 启动到UEFI Shell类似于使用DOS shell。
” 联想的UEFI/TS430文档是我所看到的唯一解释efi shell使用方法的资源。
“ UEFI 希望你的磁盘有一个 GPT 分区表,而不是 msdos 分区表。 ” UEFI 希望你的第一个分区被格式化为 fat32 或 vfat。
“ 任何时候你在做grub修改的时候,前后都要使用0001来确保你的重启是正确的。我的配置是在这个RAID控制器的PCIe 2.0插槽上安装了一个固态硬盘,上面安装了LMDE。AOC-S3008L-L8i RAID控制器重装到IT模式],在第二条PCIe 3.0插槽上,带6个3TB硬盘。RAM: 12GB ECC (3x 4GB).

以下是我要做的改变,导致我的系统无法启动: ” 改变S3008L-L8i pci插槽(留下SSD+卡)。
“ 将我的旧HighPoint RocketRocketRaid卡添加到一个开放的PCIe插槽上。

3
3
3
2012-03-01 11:08:40 +0000

我想投上一票,但显然我在SuperUser上没有足够的人气。我很高兴我终于找到了一个答案,经过几天的战斗,我终于找到了一个答案,克隆机可以工作但不会启动。我认为这一切都与UEFI和某种 “安全启动 "机制或其他东西有关。我所做的是把Ubuntu桌面放在U盘上,把grub-efigrub-efi-amd64包添加到U盘的根目录下(对于Ubuntu 11.04,grub-efi-amd64.deb和grub-efi-amd641.99~rc1-13ubuntu3的grub-efi-amd641.99~rc1-13ubuntu3的grub-efi-amd64.deb和grub-efi-amd641.99~rc1-13ubuntu3的grub-efi-amd641.99~rc1-13ubuntu3的grub-efi-amd641.99~rc1-13ubuntu3的grub-efi-amd641.99~rc1-13ubuntu3的grub-efi-amd64.deb。 唯一偶尔出现的问题是,UEFI有时会被下移到硬盘下面的启动优先级,这时你需要进入BIOS,改变启动顺序,以阻止它在SATA: drive上尝试(和失败)。

1
1
1
2015-01-21 11:38:23 +0000

在我32位的Ubuntu 14. 10的联想Yoga 2 Pro上,我改成了UEFI启动方式:

–创建文件夹

–在/etc/fstab中挂载 “EFI系统 "分区

–安装grub-efi-amd64-bin并卸载grub-efi-ia32-bin

–在EFI模式下重启Ubuntu

–测试是否正常启动,然后我安装grub-efi-amd64并卸载grub-pc grub-gfxpayload-lists,在被问到时我选择不删除/boot。


也许我把它弄得很复杂,这样就可以正常工作了:

apt-get install --reinstall grub-efi
update-grub
0
0
0
2018-08-08 01:32:05 +0000

这个条目更多的是沿着准备你的电脑重新安装EFI条目的思路。这也是你可能会发现在内部介质(SSD、HDD)上安装系统后创建一个救援盘的有效而简单的方法。

在Linux Mint Tara(一个与Ubuntu Bionic Beaver密切相关的Linux变种)上,这个方法既让我的安装变得很困难,也让我以后可以保存它。这是因为我想要一个具有持久性的活的USB,而且由于安装一个像Unetbootin这样的工具来进行持久性安装的时间和新安装的时间差不多,所以我简单地使用了和在内部SSD上安装操作系统一样的活的发行版来进行安装。当然,这些都不是RAID或其他专门的设置,但它确实需要在U盘上建立一个准备好的卷分区,并使用发行版的方法在USB上进行安装,绕过内部硬盘,在一个分区的根目录(/)上安装。当我重新启动到USB时,内部UEFI的grub条目似乎已经消失了,只剩下了在BIOS菜单中选择驱动器时的grub菜单。在大多数主内部硬盘安装中,该分区的grub名称为hd0,gpt1。

进入 “高级",进入 "高级 "后,有多个内核救援。从那里运行grub实用程序,然后正常启动。

从这时开始,在之前无法进入的内部硬盘上运行操作系统,拔掉USB,然后运行sudo grub-install。这时USB的配置是将内部硬盘启动到正常或救援模式,硬盘有自己的菜单。