You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Arch宿主机的QEMU中安装Artix Linux时,GRUB安装与efivarfs挂载失败求助

在Arch宿主机的QEMU中安装Artix Linux时,GRUB安装与efivarfs挂载失败求助

看起来你遇到的问题核心是QEMU虚拟机没有以EFI模式启动,导致系统完全没有EFI相关的环境支持,所以才会出现EFI变量不支持、挂载点不存在这些报错。我来给你一步步梳理解决方法:

一、先明确问题根源

你执行mount -t efivarfs efivarfs /sys/firmware/efi/efivars失败,本质是因为当前虚拟机处于BIOS(传统启动)模式,系统里根本不存在/sys/firmware/efi这个目录,自然没法挂载efivarfs,GRUB的EFI安装命令也必然失效。

二、解决方法:让QEMU以EFI模式启动虚拟机

1. 在Arch宿主机上安装EFI固件(OVMF)

首先需要安装QEMU依赖的EFI固件包,在Arch系统中直接用pacman安装即可:

sudo pacman -S ovmf

2. 修改QEMU启动命令,添加EFI参数

你之前启动虚拟机的命令应该没指定EFI固件,现在要加上OVMF相关的参数。假设你的虚拟机磁盘文件是artix.img,可以用类似下面的命令启动:

qemu-system-x86_64 -enable-kvm -m 4G -cpu host \
-drive file=artix.img,format=raw \
-drive if=pflash,format=raw,readonly=on,file=/usr/share/ovmf/x64/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/usr/share/ovmf/x64/OVMF_VARS.fd

简单解释下参数:

  • 两个-drive if=pflash分别指定了EFI的只读固件程序(OVMF_CODE.fd)和保存EFI配置/启动项的变量镜像(OVMF_VARS.fd),加上这两个参数后,虚拟机就会以EFI模式启动。
  • 如果你之前用了其他参数(比如光驱、网络),直接把这些EFI参数追加进去就行。

3. 重新进入安装环境,验证并完成GRUB安装

重启虚拟机进入Artix安装环境后,先确认EFI模式是否生效:

ls /sys/firmware/efi

如果能看到目录下的内容,说明已经切换到EFI模式了。这时候再执行挂载efivarfs的命令:

mount -t efivarfs efivarfs /sys/firmware/efi/efivars

应该就能成功挂载,之后再运行你原本的GRUB安装命令:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub

就不会再报错了。

三、备选方案:安装BIOS模式的GRUB

如果你不想用EFI模式,也可以直接安装BIOS版本的GRUB,不需要任何EFI相关操作,直接执行以下命令即可(注意把/dev/sda换成你的虚拟机磁盘设备名,比如第二个磁盘是/dev/sdb):

grub-install --target=i386-pc /dev/sda

备注:内容来源于stack exchange,提问作者redpz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:47:49