我一般是用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这个工具来完成这个任务,当然你使用其它类似工具也行,道理都是一样的。

  1. 首先,使用WinImage创建一个1.44M的软盘img文件。

  2. 使用UltraEdit32打开你刚刚创建的img文件,将鼠标光标放置在文件的第一行,使用Ctrl-D删除512字节。

  3. 设置UltraEdit32中[高级]-[配置]-[常规]的对话框,将"允许编辑HEX 00的文本文件而不把它们转换为空格"项复选。

  4. 再用UltraEdit32打开<<自已动手写操作系统>>书中的boot.bin文件。拷贝其所有内容并将其插入img文件的开头,保存即可。

5. Linux下的dd命令,偶的最爱

1. 制作软盘镜像文件diska.img

命令: dd if=/dev/zero of=diska.img bs=512 count=2880
2. 复制boot.bin到boot.img中
命令: dd if=boot.bin of=boot.img bs=512 count=1
3. 复制diska.img中从第512字节往后的内容添加到boot.img中(这是dd最出彩的部分)
命令: dd if=diska.img of=boot.img skip=1 seek=1 bs=512 count=2879