从 QEMU 仿真将 Arch 安装到 USB 密钥上,但所有 efivar 文件丢失

从 QEMU 仿真将 Arch 安装到 USB 密钥上,但所有 efivar 文件丢失

我对此真的很陌生,我尝试安装 archlinux (来自官方 Arch ISO:这里) 到 128GB USB 3.1 Samsung key (这个)在 MacOS 上使用 x86 模拟器 QEMU。

我完成了所有安装:

  1. 使用可访问的 USB 闪存盘启动 QEMU
  2. 以 GPT 分区表格式写入 USB 闪存盘
  3. 使用parted(VFAT、FAT32)制作261MiB ESP
  4. 使用 ext4 文件系统创建一个空白分区(剩余空间的 100%)
  5. 第二个分区上的 Pacstrap Arch
  6. 配置 Arch(主要是日期/时间,fstab 的东西)
  7. 将 GRUB2 安装到 EFI 分区
  8. 祝福EFI分区

我尝试从我的 Mac 和 Windows 计算机(我不知道什么版本,抱歉)重新启动到 Arch,但它从未作为可启动分区出现(我只是看到“Macintosh HD”作为唯一的选项,我的意思是)。

据我所知,问题是我丢失了所有的 efivars。据说,他们的位置应该是在/sys/firmware/efi但(在arch-chroot /mnt-ing之后)ls /sys/firmware只给了我acpi devicetree dmi memmap qemu_fw_cfg

以下是我在开始尝试解决危机之前按顺序执行的所有命令的列表efivars这里

从那时起,我尝试安装rEFInd(efibootmgr --create --disk /dev/vda --part 1 --loader /EFI/BOOT/bootx64.efi --label "rEFINd Boot Manager" --verbose),它安装正确,但似乎没有多大帮助。我试过modprobe efivarsmodeprobe efivar这个建议,它告诉我“致命:在目录中找不到模块 efivar /lib/modules/5.1.5-arch1-2-ARCH”。

这是我的 Mac 的配置文件,如果有帮助的话:

答案1

我不清楚您是尝试直接在 Mac 上启动 USB 记忆棒还是使用 QEMU 模拟器。我在您的编号列表中没有看到任何有关 QEMU 的内容。

如果您打算在 QEMU 上运行 Arch Linux,并且希望使用 UEFI 固件来实现,那么您必须将 UEFI 固件与 QEMU 结合使用。由于 QEMU 模拟整个机器,包括固件,因此您无法使用本机固件(无论是 UEFI 还是旧版 BIOS)。OVMF是 Tianocore UEFI 固件实现到 QEMU 的端口。启动虚拟机时,您必须向 QEMU/KVM 指定 OVMF 固件文件。

答案2

我更改了安全启动设置(老实说,我只是添加了一个密码以允许显示所有可启动驱动器)。

如果您也遇到此问题,请重新启动到恢复分区(当苹果在启动时出现时使用命令-R),然后转到“实用程序”>“安全启动设置”或类似的内容 - 无论如何,都是最上面的。

相关内容