背景
- 好久之前在虚拟机里面装的 parrot 发现启动之后没有进入引导界面,而是到了下面的奇怪界面。按英文就是也就是 UEFI shell 界面 。
一直想修复一下又比较懒,用实机比较多,毕竟虚拟机性能还是差点,刚好今天有空。
PS:当时装的好像是是 parrot 3.7 ,而且其他小伙伴貌似也没翻车。。
原因分析
- 貌似 Virtualbox 用 EFI 引导方式安装的系统 有时候就会识别不到 系统EFI启动项 即grubx64.efi 这个文件没有成功载入。
简单启动
- 在 UEFI shell 下直接输入如下命令就可以回到正常的引导步骤,不过治标不治本,再次重启还是会识别不到。下面提供两种方案
PS:
1.之前我都是一点点cd
到 efi文件的位置的 ( ̄_, ̄ ) 因为要找在FS0:
还是FS1:
,下面这个命令就直接不用找了 -_-
2.斜杠别弄反 是\
\EFI\parrot\grubx64.efi
方案一
- 按照 简单启动 进入系统之后输入如下两条命令
sudo mkdir /boot/efi/EFI/boot
sudo cp /boot/efi/EFI/parrot/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
PS:/boot 文件夹再往里就需要root用户才能看了,不过上面的两步操作可以正常操作,如果想确定有没有修改成功,请切换到root用户
方案二
- 直接在 UEFI shell 界面进行操作,省去了进去系统的步骤。
这里有个前提,需要知道自己EFI文件夹在FS0:
还是FS1:
,emmm一个个试吧,没有找到合适的命令一下子显示。
具体参照下图,找到之后执行如下命令
mkdir \EFI\boot
cp \EFI\parrot\grubx64.efi \EFI\boot\bootx64.efi
- 执行成功如下图,再输入
exit
回车再回车就正常引导啦。(。・∀・)ノ゙
结果分析
- 可以看到其实只是做了个文件复制而已, EFI/boot/bootx64.efi 这个文件夹是 VirtualBox 的默认文件夹,如果正常启动没有找到或者识别,就会自动选用这个。
最后附上成功引导的截图