boot - 操作系统开发 - 使用 qemu 从软盘启动

标签 boot qemu osdev floppy

我一直在阅读 BrokenThorn 的操作系统开发教程,并且正在创建和加载第二阶段引导加载程序。本教程适用于 Windows,但我是在 Linux(Ubuntu 13.04) 中执行此操作。

这就是我所做的:

  • 使用 mkfs.vfat 命令在 ~/Documents/floppy 下创建文件 floppy.img
  • boot.asm 文件使用 nasm 编译,给我 boot.bin
  • 然后我运行了这个命令:dd if=boot.bin of=~/Documents/floppy/floppy.img bs=512 count=1

因此我有了带有第一阶段引导加载程序的软盘镜像。使用 qemu 启动时,效果很好。

但是,在创建第二阶段引导加载程序后,(如果我是正确的)我必须安装 floppy.img 并将第二阶段复制到已安装的文件系统上。在这种情况下,如何使用 qemu 引导已安装的软盘?有可能吗?如果没有,我如何使用第二阶段引导加载程序。

请原谅我的任何愚蠢的假设/问题,因为我是新手。

最佳答案

你的问题出在哪里?您安装图像:

mount -oloop ~/Documents/floppy.img /mnt/floppy

复制阶段2:

cp stage2.bin /mnt/floppy

卸载它:

umount /mnt/floppy

并使用 QEMU 启动它:

qemu -fda ~/Documents/floppy.img

瞧!

关于boot - 操作系统开发 - 使用 qemu 从软盘启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19961095/

相关文章:

linux-kernel - Yocto 将 initramfs/initrd 镜像挂载到 Raspberry Pi

linux - 为 u-boot 创建 boot.scr

linux - x86 汇编字符串缓冲区编号到 ASCII

在 qemu 中使用 GDB 调试 Linux 内核无法命中函数或给定地址

c++ - 无法在 VirtualBox 中启动自定义内核 : "could not read from boot medium"

linux -/usr/src 目录是否与 Linux 内核的启动有任何关系?如果是,如何?

linux - ARM Linux 引导的一些细节

linux - 通过用户空间 I/O (UIO) Linux 驱动程序与 QEMU edu 设备连接

assembly - 操作系统和程序集 : What prevents user mode from setting selector to arbitrary value?

c - 使用gcc混合多个没有主要功能的目标文件