我最近在汇编中为软盘启动编写了一个简单的bootloader。我在我的Windows XP虚拟机上使用'debug'命令来写入软盘映像的第一个扇区。它有效,这很好。现在,我试图通过读取扇区将第二阶段引导加载程序(或内核)加载到内存中:我编写了第二阶段引导加载程序以及修改的第一阶段引导加载程序。
为了实现这一点,我需要将第二阶段引导加载程序复制到软盘中。我点击了Windows资源管理器上的A:图标,尝试复制它,但我得到的消息是“驱动器A中的磁盘:未格式化。你想现在格式化吗?”在这个阶段,我连续得到了一些问题。
我的问题是:
如何让Windows确认我写的引导加载程序,以便我可以复制其他文件? (或者甚至可能吗?)
如果这不是一个选项,我是否总是需要使用“debug”或“partcopy”将所有其他文件复制到磁盘中?
我可以将第二阶段和/或其他文件复制到任何空白区域吗?
Windows 7中的调试命令消失了,partcopy windows版本不允许我在磁盘的第一个扇区上写入。有哪些替代方案? (尽量避免使用VM。)
我很抱歉在一个帖子上问了这么多问题。我认为一个人很容易问,因为他们都是相关的。
答案 0 :(得分:3)
您的引导扇区是否在字节446处有分区表?它需要有,好..分区。还需要有效的文件系统。
如果没有任何有效的受支持文件系统,那么您需要使用专门的工具将数据直接写入扇区。
如果您不使用文件系统,则可以根据需要随意使用整个磁盘。如果要使用文件系统,则需要一些扇区才能工作。理想情况下,您还应该通过文件系统查找第二阶段的扇区。
您可以使用专门用于编写引导扇区或磁盘映像的专用工具,或者您可以使用dd:
dd of=/dev/fd0 if=bootsector.img bs=512 count=1