Simics QSP中OpenSUSE DVD安装后,保存的硬盘镜像无法启动
Simics QSP 安装OpenSUSE Leap 15.2后启动故障排查与解决
问题描述
按照入门指南的DVD安装流程,使用qsp-dvd-boot.simics脚本在Simics QSP上完成OpenSUSE Leap 15.2安装后,通过save-persistent-state命令关机保存的硬盘镜像,无法通过qsp-hdd-boot.script正常启动:UEFI引导程序直接进入PXE、HTTPv4/HTTPv6等选项并挂起。同时发现Simics QSP UEFI无法正确定位ESP分区,当前ESP引导文件位于/boot/efi/EFI/opensuse/,而非传统的/boot/efi/bootx64.efi位置。此外,使用qsp-system.include创建启动脚本时,默认因未设置bios_image无法运行,而qsp-hdd-boot.simics设置disk0_image=./os-install-final/board.disk0.hd.image.craff后可运行,测试版本为Simics 6.0.84(6097)。
解决方案
1. 禁用PXE等引导选项并进入UEFI Shell
- 启动Simics后,在UEFI开始引导前,通过Simics键盘输入
F2(或执行命令keyboard.send-key f2)进入UEFI设置界面 - 切换到Boot选项卡,调整引导顺序:将PXE、HTTPv4、HTTPv6等引导项移至列表末尾,或直接禁用这些选项
- 将UEFI Shell添加到引导顺序并移至靠前位置,保存设置后重启即可进入UEFI Shell
2. 修复ESP分区引导文件定位问题
OpenSUSE Leap 15.2默认将GRUB引导文件放在/boot/efi/EFI/opensuse/目录下,UEFI无法自动识别该路径,可通过以下两种方式修复:
- UEFI Shell手动创建软链接:进入UEFI Shell后,先定位到ESP分区(通常为
fs0:),执行命令:ln -s EFI/opensuse/grubx64.efi bootx64.efi - 系统内重新安装GRUB:若能通过安装介质进入救援模式,执行命令重新将GRUB安装到ESP根目录:
grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=opensuse --recheck
3. Simics UEFI镜像的调试与构建
- Simics QSP使用的UEFI基于Tianocore EDK2开源项目,可从Tianocore官方代码仓库获取源码
- 构建自定义UEFI镜像时,需结合Simics提供的QSP平台适配层,编译时可裁剪PXE、HTTP引导等不必要模块生成精简版镜像,具体构建步骤参考Simics官方文档中自定义UEFI相关章节
- 精简版镜像可用于快速排查引导路径识别、引导项加载等问题
4. 启动脚本优化
- 使用
qsp-hdd-boot.simics时,若脚本未自动加载UEFI镜像,可手动添加bios_image参数,示例:disk0_image = ./os-install-final/board.disk0.hd.image.craff bios_image = $SIMICS_BASE_PROJECT/../targets/qsp-x86/bios/uefi-qsp-x86.img - 若使用
qsp-system.include,需在自定义脚本中显式声明bios_image变量,示例:include $SIMICS_BASE_PROJECT/../targets/qsp-x86/qsp-system.include bios_image = $SIMICS_BASE_PROJECT/../targets/qsp-x86/bios/uefi-qsp-x86.img disk0_image = ./os-install-final/board.disk0.hd.image.craff
内容的提问来源于stack exchange,提问作者Kovalex
相关产品推荐
相关产品推荐

