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

在QEMU和OVMF中启动Linux内核时为何出现“Command Error Status: Unsupported”错误?

解决OVMF EFI shell启动内核提示"Command Error Status: Unsupported"的问题

问题原因

QEMU的-kernel选项是通过自身内置加载器启动内核,不要求内核具备EFI可执行能力;但在OVMF的EFI shell中直接执行内核文件,必须要求内核编译时启用EFI stub支持,生成符合EFI规范的可执行镜像。你的内核能通过-kernel启动,说明内核功能正常,但缺少EFI stub支持,导致EFI shell无法识别执行。

修复步骤

  1. 重新配置内核,开启EFI stub相关选项
    进入内核配置界面(如make menuconfig),确保以下选项启用:

    • CONFIG_EFI=y(启用EFI系统支持)
    • CONFIG_EFI_STUB=y(启用EFI stub,让内核成为EFI可执行文件)
    • CONFIG_CMDLINE_BOOL=y 并设置CONFIG_CMDLINE="root=/dev/sda1 rw console=ttyS0"(根据实际根分区和控制台参数调整,可选但建议设置,避免启动后无输出)
    • 可选开启CONFIG_RELOCATABLE=y,提升EFI环境下内核重定位的兼容性
  2. 重新编译并安装内核
    执行编译命令:

    make && make modules_install
    

    编译完成后,用file vmlinuz-6.2.1验证镜像格式,输出应包含EFI application字样,说明内核已具备EFI执行能力。

  3. 替换镜像并验证启动
    将新生成的vmlinuz-6.2.1复制到OVMF识别的FAT格式EFI分区(即之前的fs0:对应的分区),在EFI shell中执行:

    fs0:\vmlinuz-6.2.1
    

    若需要指定启动参数,可追加参数,例如:

    fs0:\vmlinuz-6.2.1 root=/dev/sda1 rw console=ttyS0
    

内容的提问来源于stack exchange,提问作者Kuraga

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:48:09