2

我正在研究 OS 开发,我使用了 brokenthorn 资源,但使用了一些不同的工具,即我使用 CentOS、NASM 和 Qemu 作为测试/开发环境。在使用辅助加载器创建可引导的 img 文件时,我遇到了一些问题。

我有两个文件: 1. bootloader.bin 这是第一阶段的加载器。2. stage2.bin 是二级加载器。

为了创建可引导的 img 文件,我执行以下操作:

  • dd if=/dev/zero of=floppy.iso bs=1024 count=1440 -- 创建空文件
  • mkfs.vfat -F 12 floppy.iso --在文件中创建文件系统
  • dd if=../bin/bootloader.bin of=floppy.iso bs=512 count=1 conv=notrunc --将第一个加载程序写入引导扇区
  • sudo mount -o loop floppy.iso /mnt/floppy/ -- 尝试使用先前创建的 FAT-12 文件系统挂载文件系统以编写辅助加载程序。

在最后一步中,我收到以下错误:

mount: /dev/loop0 is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

您能否帮助我了解我做错了什么以及我可以使用哪些其他方法来完成创建带有文件系统的可启动 img。谢谢!

4

1 回答 1

1

我曾经偶然发现类似的问题,这个答案可能对你有帮助。

但是,我强烈建议您切换到像 Grub 这样的引导加载程序,并花时间和精力开发您的实际操作系统。为此,我会推荐grub resque它,因为它易于使用并且允许快速创建您可以刻录或馈送到虚拟机的 ISO。否则,您可能会淹没在所有这些小事情中,例如启用保护模式、加载阶段等等。

于 2018-11-23T08:17:33.460 回答