【发布时间】:2019-04-20 21:20:52
【问题描述】:
我正在研究 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。 谢谢!
【问题讨论】:
-
mount将查看引导扇区(前 512 个字节)以确定磁盘几何结构以及文件系统 (FAT12) 的类型和大小。包含此数据的引导扇区开头的部分称为BIOS Parameter Block(BPB)。 -
非常感谢,我已将 BPB 添加到我的 bin 文件中,现在我可以挂载到我的文件系统中了。但是有什么办法只使用 linux 工具吗?
标签: operating-system boot mount osdev floppy