一張可以被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)。