在虚拟机里完整跑通 Quibble 自定义 Windows 引导

在虚拟机里完整跑通 Quibble 自定义 Windows 引导 在虚拟机里完整跑通 Quibble 自定义 Windows 引导【免费下载链接】quibbleQuibble - the custom Windows bootloader项目地址: https://gitcode.com/gh_mirrors/qu/quibble读完并照做完你会在 Linux 上交叉编译出自定义 Windows 引导程序 Quibble 的quibble.efi把它装进一台 UEFI 虚拟机的 EFI 系统分区并从里面把 Windows 引导起来。编译和引导两个环节都有明确的判断标准卡住时能对照排查。先说清楚 Quibble 是什么Quibble 是开源的 Windows 引导程序重写版对应官方体系里 bootmgfw.efi 和 winload.efi 的职责在 UEFI 环境下把 Windows 从硬盘加载进内存并移交控制权。它支持从 Windows XP 到 Windows 10 22H2除了 NTFS 还能从 Btrfs 卷启动这是官方引导程序做不到的。它目前仍是概念验证项目适合拿虚拟机折腾真机上 EFI 实现质量参差不保证可用。环境与成本工具用途必要性Git克隆仓库必须CMake驱动构建流程必须MinGW 交叉编译器x86_64-w64-mingw32-gcc/g把源码编成 Windows 的 EFI 可执行文件也可换 Clang 方案必须gnu-efi 头文件UEFI 应用开发用的接口定义必须QEMU 或 VirtualBox跑 UEFI 虚拟机的载体必须Windows 安装介质在虚拟机里装一台 WindowsXP–10 22H2 均可必须带 CSM 的 OVMF 固件仅当你要引导 Windows 7 或更早版本时视情况最小可行路径整个流程分三步先编译出引导文件再放进虚拟机然后注册启动项并开机。克隆仓库并装齐工具链。在 Linux 下编译器、CMake 和 gnu-efi 三样齐了就能编git clone https://gitcode.com/gh_mirrors/qu/quibble --recurse-submodules sudo apt install gnu-efi cmake配置并编译。仓库根目录自带四个 CMake 工具链文件MinGW 用mingw-amd64.cmakeClang 用clang-amd64.cmake。在源码根目录执行mkdir build cd build cmake -DCMAKE_TOOLCHAIN_FILE../mingw-amd64.cmake .. make -j4把build/quibble.efi拷进虚拟机的 EFI 系统分区子目录也行排错困难时放根目录并在同一目录建一个freeldr.ini指向你的 Windows 安装位置。现代 Windows 还要先关掉快速启动管理员终端执行powercfg /h off最后在虚拟机的 UEFI 启动项里把 quibble.efi 加进引导列表开机。确认它真的起来了三个可观察信号按顺序看编译环节build/下出现了quibble.efi。它本质是个 EFI 应用在 Linux 里无法直接运行属于正常现象。引导环节进不了 Windows 但屏幕出现 Quibble 的菜单画面显示版本号和 Time until selected option is chosen 倒计时。这说明引导程序本身已接管问题出在配置而不是编译。如果停在Error opening freeldr.ini.说明 ini 文件缺失或放错了分区停在SystemPath not set.说明 ini 里没有可用的 SystemPath。最终信号Windows 桌面正常进入。注意启动过程会有几秒黑屏这是设计现状不是故障。改 freeldr.ini 换一个启动目标Quibble 的引导菜单不是硬编码的src/menu.cpp启动时解析同目录的freeldr.ini从[freeldr]段读取启动项。菜单显示什么、往哪里加载都取决于这个文件。SystemPath指定 Windows 目录默认按第一块盘第三个分区找。两种写法按分区号或者用卷 UUID 精确指向例如把SystemPathntfs(uuid)\Windows里的 UUID 换成你 Btrfs 或 NTFS 卷的实际值Windows 侧看磁盘属性Linux 侧可用btrfs check查。需要额外参数时写进同段的Options行比如从 Btrfs 子卷启动时加/SUBVOLxxx。改完不用重新编译把新 ini 拷回 EFI 分区重启即可。验证方法和上面一致菜单能列出你的启动项、Windows 能从新位置启动就说明改动生效看到SystemPath not set.则是 ini 解析失败回去检查分节名和等号两侧的空格。避坑速查现象大概率原因处理方法引导时没有图形界面只有文本菜单BIOS 里 CSMBIOS 兼容层没关关闭 CSM注意关了之后 Windows 7 及更早版本将不能再引导蓝屏 BAD_SYSTEM_CONFIG_INFOWindows 注册表处于未清理状态Quibble 的简易恢复不够用把C:\Windows\System32\config\SYSTEM挂到另一台机器的 Regedit 上打开一次再存回平时确保正常关机引导 Windows 7 或更早版本失败固件缺少 CSM 兼容模块换用带 Seabios CSM 的 OVMF 固件从 Btrfs 启动后Windows 里 NTFS 卷不可访问Windows 只在从 NTFS 启动时自动加载 ntfs.sys管理员终端执行sc start ntfs临时启用或改注册表HKLM\SYSTEM\CurrentControlSet\Services\ntfs的 Start 值为 1 使其常驻开机直接黑屏无输出引导程序没被 UEFI 执行或放错分区确认 quibble.efi 在 EFI 系统分区且已加入 UEFI 启动项列表下一步的入口有两处仓库 README 里有安装细节、受支持版本列表和完整 FAQ菜单与启动流程的实现分别在src/menu.cpp和src/boot.cpp读代码比改配置更直接。【免费下载链接】quibbleQuibble - the custom Windows bootloader项目地址: https://gitcode.com/gh_mirrors/qu/quibble创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考