Windows系统下如何向SD卡引导扇区写入自定义汇编代码且不影响正常读写
Windows平台写入SD卡指定扇区操作方案
前置准备
- 先将目标SD卡格式化为符合你需求的FAT16格式,格式化完成后在Windows上读写测试文件,确认存取功能正常
- 把你编译生成的引导代码二进制文件调整为单扇区大小(512字节),如果需要写入6号扇区作为恢复备份,对应的备份镜像也调整为512字节大小
- 准备本地扇区编辑工具HxD,以管理员权限运行
操作步骤
- 插入SD卡后,在HxD顶部菜单栏选择
工具→打开磁盘 - 在弹出的磁盘选择窗口中,找到你的SD卡对应的物理磁盘,不要选逻辑分区,勾选「作为可移动磁盘打开」选项后确认
- 跳转至0号扇区:在底部偏移输入框输入
0x0,选中从该偏移开始的连续512字节内容 - 右键选中区域,选择
粘贴写入,将你编译好的引导代码二进制内容写入,不要选择插入写入,避免破坏后续扇区的文件系统结构 - 若需要同时写入6号恢复扇区,跳转偏移至
0xC00(6×512=3072=0xC00),重复上述选中、粘贴写入操作即可 - 点击保存修改,关闭HxD后重新拔插SD卡,在Windows上测试文件读写功能确认正常
兼容FAT16读写的核心注意点
- 写入0号扇区时如果你的引导代码长度不超过446字节,仅覆盖前446字节即可,剩余的66字节为原生MBR分区表和结束标志
0x55AA,完全保留的情况下Windows对SD卡的识别不会有任何问题 - 如果你的引导代码需要占用全部512字节,提前将原生0号扇区末尾的66字节分区表+结束标志内容复制出来,合并到你的引导二进制文件末尾后再写入,即可保证FAT16文件系统正常识别,不需要适配普通PC的启动逻辑
- 操作前务必确认你选择的磁盘是目标SD卡,不要误选本地硬盘,避免造成本地数据丢失
内容的提问来源于stack exchange,提问作者MatrixPeckham
相关产品推荐
相关产品推荐

