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

Windows环境下如何将Bootloader与Kernel合并为单个.img文件?

在Windows下通过Makefile合并Bootloader和Kernel为单个.img镜像

要在Windows环境下将boot.bin和kernel.bin合并为可被QEMU识别的软盘镜像,你可以利用Windows自带的copy /b命令完成二进制文件的拼接,具体修改Makefile如下:

setup:
	@if not exist build mkdir build
	nasm src\boot\boot.asm   -f bin -o build\boot.bin
	nasm src\kernel\main.asm -f bin -o build\kernel.bin
	copy /b build\boot.bin + build\kernel.bin build\main_floppy.img

run:
	qemu-system-i386 -fda build\main_floppy.img

关键细节说明:

  • copy /b命令:/b参数指定以二进制模式合并文件,避免文本模式下自动转换换行符等操作破坏二进制数据的完整性。合并顺序必须是boot.bin在前,因为软盘镜像的第一个512字节必须是有效的引导扇区(需包含0xAA55结束标志)。
  • 创建build目录:添加@if not exist build mkdir build确保编译输出目录存在,避免因目录缺失导致编译失败(@符号用于隐藏命令本身的输出)。
  • Makefile缩进:注意每个命令行前必须使用Tab键缩进,而不是空格,这是Makefile的语法要求。

可选:创建标准大小的软盘镜像

如果需要严格符合1.44MB软盘的规格(QEMU兼容性更好),可以先创建空镜像再写入内容:

setup:
	@if not exist build mkdir build
	nasm src\boot\boot.asm   -f bin -o build\boot.bin
	nasm src\kernel\main.asm -f bin -o build\kernel.bin
	# 创建1.44MB空软盘镜像(1474560字节)
	fsutil file createnew build\main_floppy.img 1474560
	# 将boot.bin写入镜像开头
	type build\boot.bin > build\main_floppy.img
	# 将kernel.bin追加到镜像末尾
	type build\kernel.bin >> build\main_floppy.img

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:07:23