我一般是用dd命令的,今天好奇,看下Win下是怎么做的,搜了一些方法。。。。1. 在DOS下用debug 把floppy.img写入A盘 debug floppy.img -w 100 0 0 1 -q 把floppy.img写入B盘 debug floppy.img -w 100 1 0 1 -q
这里我们将 floppy.img 换成 boot.bin
2. 使用 WinHex
用winhex打开 boot.bin 文件,按 ctrl+A 选择全部内容,然后点右键->edit- >copy all->hex values,然后用 winhex 新建一个文件,在弹出窗口选择大小为
1.44M。把刚才复制的十六进制值粘贴至新文件。保存为boot.img。
3. 用这个python脚本 # Make floppy Img import sys if len( sys.argv ) != 3: print 'Usage: ', sys.argv[0], 'BinFileName ImgFileName' sys.exit() fin = file( sys.argv[1], 'rb' ) bufbin = fin.read( 512 ) fin.close() bufbin += ( '/0' * ( 1474560 - 512 ) ) fout = file( sys.argv[2], 'wb' ) fout.write( bufbin ) fout.close()
4.我使用UltraEdit32,WinImage这个工具来完成这个任务,当然你使用其它类似工具也行,道理都是一样的。
首先,使用WinImage创建一个1.44M的软盘img文件。
使用UltraEdit32打开你刚刚创建的img文件,将鼠标光标放置在文件的第一行,使用Ctrl-D删除512字节。
设置UltraEdit32中[高级]-[配置]-[常规]的对话框,将"允许编辑HEX 00的文本文件而不把它们转换为空格"项复选。
再用UltraEdit32打开<<自已动手写操作系统>>书中的boot.bin文件。拷贝其所有内容并将其插入img文件的开头,保存即可。
5. Linux下的dd命令,偶的最爱
1. 制作软盘镜像文件diska.img
命令: dd if=/dev/zero of=diska.img bs=512 count=28802. 复制boot.bin到boot.img中命令: dd if=boot.bin of=boot.img bs=512 count=13. 复制diska.img中从第512字节往后的内容添加到boot.img中(这是dd最出彩的部分)命令: dd if=diska.img of=boot.img skip=1 seek=1 bs=512 count=2879