《orange’s 一个操作系统的实现》第三章中,搭建保护模式的运行环境 执行 mount -o loop pm.img /mnt/floppy 时,提示错误:
you must specify your systemfile type 。在网上找了好久终于找到了解决方法,其实很简单、
之所以出现问题是因为 用bximage新建的img文件是空文件,没有被格式化。解决方法有两种:
一:在img文件中 写入空内容:
1、写入空白内容:
1 | dd if=/dev/null of=pm.img bs=512 count=1 conv=notrunc |
2、使用 losetup 命令,将 data.img 作为 loop device 使用:
1 | sudo losetup /dev/loop0 pm.img |
3、然后,格式化这个 loop device:
1 | sudo mkfs.msdos /dev/loop0 |
4、检查文件系统:
1 | sudo fsck.msdos /dev/loop0 |
5、删除 loop device:
1 | sudo losetup -d /dev/loop0 |
这时候,pm.img 已经格式化完成,可以作为一个软盘镜像使用。用file查看,结果为:
1 | pm.img: DOS floppy 1440k, x86 hard disk boot sector |
再次输入
1
sudo mount -o loop pm.img /mnt/floppy
二:直接格式化
mkfs.msdos pm.img