liunx でDOS起動ディスクを作る方法

(2012/9/13追記: もっと簡単な方法がありました.詳細はこちらをご覧ください)

BIOSやVBIOSの更新で時々必要になるDOSの起動ディスクを、Windowsを使わずに、Linuxだけで作る方法です。

起動ディスクのメディアはUSBメモリ(USB flash drive)、DOSFreeDOSを使います。

必要なソフトウェアの入手

必要なコマンド類をインストールします。

debian とか ubuntuなら

$ sudo apt-get install dosfstools nasm unzip

redhat とか fedoraなら

$ sudo yum install dosfstools nasm unzip

とします。

次に FreeDOS からファイルを2つダウンロードします。

コマンドラインからダウンロードするなら

$ wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/sys/sys-freedos-linux/sys-freedos-linux.zip
$ wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/fdboot.img

等とします。

USBメモリのフォーマット

起動用パーティションを作成します。

ポイントは

です。

パーティションができたら、FAT32形式でフォーマットします

$ sudo mkdosfs -F 32 /dev/sdc1 

FreeDOSのインストール(ブートセクタの用意)

まずUSBメモリDOSのbootセクタをつくります

ダウンロードしておいた sys-freedos-linux.zip を展開

$ unzip sys-freedos-linux.zip

インストールします

$ sudo ./sys-freedos.pl  --disk=/dev/sdc1 
DOS boot sector for /dev/sdc1 will be created by:
	nasm -o /dev/stdout   ./bootsecs/boot32.asm
Using FAT32. Partn offset 0, CHS *x64x32  Drive 0, (0x0, 0x29),
SerNo F237-106B, Strings '           ',  'FAT32   '.
Boot sector successfully updated.

FreeDOSのインストール(KERNEL.SYS と COMMAND.COMのコピー)

次にDOSの本体 KERNEL.SYS と COMMAND.COM をUSBへコピーします

KERNEL.SYS と COMMAND.COMは ダウンロードしておいた fdboot.img の中にあります。

まず fdboot.img を mount して

$ sudo mount -o loop fdboot.img /media/fd

usbメモリもマウントします

$ sudo mount /dev/sdc1 /media/usb

あとは ファイルをコピーするだけ

$ sudo cp /media/fd/kernel.sys /media/usb
$ sudo cp /media/fd/command.com /media/usb

これでFreeDOSが起動するUSBメモリが完成です。