我需要在操作系统启动之前运行一个脚本。该脚本读取一个文本文件(在文件系统 FAT32 上),如果结果是“A”,则启动 OS1,否则如果结果是“B”,则启动 OS2(另一个操作系统)。我想到过 Grub,但我不知道该怎么做。或者,我可以使用 EFI Shell,但我的计算机固件中没有 EFI Shell。我该怎么办?谢谢大家。
答案1
你可以从 TianoCore 项目下载 EFI Shell。它是基于英特尔实现的开源版本。
下载该二进制文件,将其放在 EFI 系统分区上并添加 UEFI 启动项。最简单的方法是使用 Linux:(以 root 身份)
cd /efi/boot
wget https://github.com/tianocore/edk2/raw/master/ShellBinPkg/UefiShell/X64/Shell.efi
efibootmgr -c -p 1 -l shell.efi -L "EFI Shell"
然后通过 UEFI 配置界面将其设置为默认启动选项或使用efibootmgr
:
efibootmgr -o $(efibootmgr | grep 'EFI Shell' | sed -r -e 's/^Boot0+//' -e 's/\*.*//')