我将以下字节写入名为disk.img
的文件中FA 8D 36 1B 7C E8 01 00 F4 AC 3C 00 74 0C B4 0E
BB 07 00 B9 01 00 CD 10 EB EF C3 4D 61 79 20 74
68 65 20 66 6F 72 63 65 20 62 65 20 77 69 74 68
20 79 6F 75 21 0D 0A 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
..enough zero to make the size of file 512bytes.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
以上字节是加载到引导扇区时应该有效的正确指令和幻数。但是在我执行“qemu-X86_64 disk.img”之后,发生了错误。
加载disk.img时错误-13
有谁知道如何解决问题或可能导致此错误的原因是什么?
谢谢!
答案 0 :(得分:0)
我不知道你是否可以用任何东西填充图像,并期望它只是因为你在正确的位置有55 AA。因为您似乎正在编写引导加载程序,请确保您的代码认为它正在正确的位置执行。它应该在偏移量0x7C0(如果我没记错的话,请仔细检查)。您可以使用程序集文件顶部的[org 0x7c0]进行设置。
此外,我不确定您只能拥有512字节的文件。尝试使硬件大于dd if = / dev / zero of = disk.img bs = 512 count = 2000,然后再使用dd将引导加载程序复制到磁盘的第一部分。
你也应该使用-hda或-fda标签,因此它应该是qemu -hda disk.img