如何重装GRUB2 EFI?
在成功更新了BIOS后,出了点问题,结果左上角的黑屏上有一个闪烁的光标。没有错误,也没有什么。现在BIOS只列出了一个SATA: <disc name>
启动选项,而不是通常的UEFI ubuntu
启动选项。我使用的是GPT分区方案。
我最终发现可行的解决方案是正确地重新安装grub-efi-amd64
。那么,我该怎么做 ?
PS:其实,我自己成功地重装了GRUB2 EFI,由于找不到完整的方法,我将在这里发布我的答案。
在成功更新了BIOS后,出了点问题,结果左上角的黑屏上有一个闪烁的光标。没有错误,也没有什么。现在BIOS只列出了一个SATA: <disc name>
启动选项,而不是通常的UEFI ubuntu
启动选项。我使用的是GPT分区方案。
我最终发现可行的解决方案是正确地重新安装grub-efi-amd64
。那么,我该怎么做 ?
PS:其实,我自己成功地重装了GRUB2 EFI,由于找不到完整的方法,我将在这里发布我的答案。
用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分区,复制文件,重启,就可以了)。
和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
命令中增加了两个条目0000
和0002
!
开机顺序中Boot0002* Linux HD
条目排在第一位不正确。果然,不出所料,没有成功。于是我重新启动了服务器,点击F12,选择了0000
。果然如愿以偿,它确实启动到了我的LMDE安装。
通过efibootmgr删除不需要的条目的方法是:
# efibootmgr -b 2 -B
我用这个命令删除了0002
和linuxmint
条目。
如果你正在阅读这篇文章,并且和我一样对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插槽上。
我想投上一票,但显然我在SuperUser上没有足够的人气。我很高兴我终于找到了一个答案,经过几天的战斗,我终于找到了一个答案,克隆机可以工作但不会启动。我认为这一切都与UEFI和某种 “安全启动 "机制或其他东西有关。我所做的是把Ubuntu桌面放在U盘上,把grub-efi
和grub-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
上尝试(和失败)。
在我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
这个条目更多的是沿着准备你的电脑重新安装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的配置是将内部硬盘启动到正常或救援模式,硬盘有自己的菜单。