制作Linux可识别的软盘映像文件(FAT12格式)
一张可以被Linux识别的软盘映像很有好处的,我们可以在Linux下对软盘里的文件进行操作,Linux会在软盘映像中自动补充根目录,便于软盘中文件的组织。如果想知道软盘中有没有某个文件,只要在目录中搜索文件名就行。
(FAT12格式的软盘,摘自《Orange'S:一个操作系统的实现》)
(摘自《Orange'S:一个操作系统的实现》)
上一篇学习笔记中说过,采用dd指令,可以制作一个空白软盘映像。
所以,第一步,制作一个空白软盘映像:
dd if=/dev/zero of=diska.img bs=512 count=2880
第二步,准备一个BPB格式的引导文件,作为引导扇区。BPB格式如下:
(摘自《Orange'S:一个操作系统的实现》)
也就是说,将引导扇区的汇编文件boot.asm写成这个格式,即:
然后编译,生成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)。