操作系统开发。从文件创建可启动iso。

时间:2018-11-18 08:08:33

标签: operating-system boot mount osdev floppy

我正在研究OS开发,并且我使用Breakthorn资源,但是使用的工具略有不同,即,我使用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挂载-o循环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。 谢谢!

1 个答案:

答案 0 :(得分:1)

我曾经偶然发现类似的问题,this answer可能会对您有所帮助。

但是,我强烈建议您切换到Grub之类的引导加载程序,并花一些时间和精力来开发自己的实际OS。为此,我建议使用grub resque,因为它简单易用并可以快速创建可以刻录或馈送至虚拟机的ISO。否则,您可能会陷入所有这些次要的事情,例如启用保护模式,加载舞台等等。