0

我将以下字节写入名为 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

有谁知道如何解决问题或可能导致此错误的原因是什么?

谢谢!

4

1 回答 1

0

我不知道你是否可以用任何东西填充图像并期望它能够工作,因为你在正确的位置有 55 AA。由于您似乎正在编写引导加载程序,请确保您的代码认为它正在正确的位置执行。它应该在偏移量 0x7C0 中(如果我没记错的话,请仔细检查 thaat)。您使用汇编文件顶部的 [org 0x7c0] 设置它。

另外我不确定你只能有一个 512 字节的文件。尝试制作比 dd if=/dev/zero of=disk.img bs=512 count=2000 更大的硬盘驱动器,然后再次使用 dd 将引导加载程序复制到磁盘的第一部分。

你也应该使用 -hda 或 -fda 标记所以它应该是 qemu -hda disk.img

于 2012-06-14T03:30:07.613 回答