制作Linux可识别的软盘映像文件(FAT12格式)

一张可以被Linux识别的软盘映像很有好处的,我们可以在Linux下对软盘里的文件进行操作,Linux会在软盘映像中自动补充根目录,便于软盘中文件的组织。如果想知道软盘中有没有某个文件,只要在目录中搜索文件名就行。

制作Linux可识别的软盘映像文件(FAT12格式)_第1张图片

(FAT12格式的软盘,摘自《Orange'S:一个操作系统的实现》)

制作Linux可识别的软盘映像文件(FAT12格式)_第2张图片

(摘自《Orange'S:一个操作系统的实现》)

上一篇学习笔记中说过,采用dd指令,可以制作一个空白软盘映像。

所以,第一步,制作一个空白软盘映像:

dd if=/dev/zero of=diska.img bs=512 count=2880

第二步,准备一个BPB格式的引导文件,作为引导扇区。BPB格式如下:

制作Linux可识别的软盘映像文件(FAT12格式)_第3张图片

(摘自《Orange'S:一个操作系统的实现》)

也就是说,将引导扇区的汇编文件boot.asm写成这个格式,即:

制作Linux可识别的软盘映像文件(FAT12格式)_第4张图片

然后编译,生成bin文件。

最后一步,把引导扇区写入软盘映像:

dd if=boot.bin of=diska.img bs=512count=1 conv=notrun

如此我们就获得了一个可以被Linux识别的软盘映像。

接下来,通过mount指令将软盘映像挂载到Linux文件系统中,一般是挂载在/mnt/floppy下。

挂载指令:mount –oloop boot.img /mnt/floppy/

解除挂载指令:umount/mnt/floppy/

判断有没有成功挂上的指令:mount-l

挂载完成之后,/mnt/floppy/文件夹就相当于软盘,把文件copy到/mnt/floppy/里就相当于copy到了diska.img里面,目录会自己生成。

顺便一提,dd和cp指令的区别在于,dd指令针对的是数据块,而cp指令针对的是文件。dd指令会将数据的位置原封不动地复制,而cp指令将以文件为单位,哪里有空就放在哪里(这篇参考资料很形象:http://blog.csdn.net/erazy0/article/details/6087554)。

你可能感兴趣的:(制作Linux可识别的软盘映像文件(FAT12格式))