【问题标题】:qemu, get files from host to DOS and also run a bootloaderqemu,从主机获取文件到 DOS 并运行引导加载程序
【发布时间】:2014-04-06 20:50:05
【问题描述】:

我需要专门在 QEMU 中运行一些 .com 文件和引导加载程序。 我正在运行带有 0.9.0 版本 Qemu 的 Win XP 机器。

对于 .com 文件,我下载了 MS-DOS 6.22 img,然后根据本教程: http://gunkies.org/wiki/Installing_MS-DOS_on_Qemu 我运行了命令:

qemu-img create -f qcow msdos.disk 128M

但它只创建大小为 1KB 的 msdos.disk 文件。

然后我运行了这个命令:

qemu -hda msdos.disk -m 64 -L . -fda dos622.img -boot a

在指南中说应该开始某种安装,但据我所知,它实际上启动了可能是 MS-DOS 的东西。它给了我一个命令行,我试图在其中进行 dir,它显示了一些名为 MOUSE.EXE 之类的 .com 和 .exe 文件,就好像它们是某种驱动程序一样。

我在谷歌上搜索了一段时间,发现的只是一堆 Linux 指南。

首先,我确实需要编译一些以org 100h(.com 文件) 开头的 .asm 文件并在 DOS 中测试运行它们。所以我想我编译它们来生成.o.bin 文件。但接下来呢?如何在 Win XP 的虚拟 Qemu DOS 机器中获取它们?

第二件事,当我准备好 asm 代码时,如何运行手写引导加载程序?我是否以某种方式将其编译为某种.img?如何让 Qemu 运行我的引导加载程序?

我只是对这一切感到困惑,如果有更多知识渊博的人能以一种菜鸟友好的方式帮助我,我将非常感激。

【问题讨论】:

    标签: assembly windows-xp qemu


    【解决方案1】:

    对于您的汇编文件,您需要知道它们是为什么汇编程序编写的。如果它们是为nasm 的,那么你很幸运,它可以直接为你写一个com 文件(它只是一个平面二进制文件,所以使用-f bin)。

    要将其导入 qemu,您需要使用一些允许操作原始磁盘映像的工具,例如 mtools。您应该创建并格式化图像(为简单起见,使用软盘),然后将您的 com 文件复制到其中。然后你可以将它作为第二个软盘驱动器附加到 qemu 中。如果你的 dos 磁盘有足够的空间,你当然可以将你的 com 文件复制到该映像中。

    如果您有自己的引导记录,您可以将其作为平面二进制文件发出,并将其作为磁盘映像传递给 qemu(确保它填充到 512 字节的倍数,除了 qemu 不是非常挑剔关于大小)。这是假设您也不需要文件系统,因为那样您就必须以某种方式替换引导扇区。如果一切都失败了,你可以抓住dd的windows端口。

    【讨论】:

    • 谢谢!这真的很有帮助!你是最棒的:)。
    猜你喜欢
    • 2014-07-16
    • 2021-03-30
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 2014-01-13
    • 1970-01-01
    相关资源
    最近更新 更多