取得
以下のサイトからフロッピーのイメージを取得します。
拡張子がISOのものはCDなのでIMGとなっているものを探します
https://winworldpc.com/download/49c3a35d-1245-0911-c3a7-c29d25525400
フロッピー3枚分あります。
今回は5.0をダウンロードしました。
操作
110MBの仮想HDDを作成
qemu-img create -f raw msdos_hdd.img 110M
AドライブにDisk01.img、Cドライブへ上で作成した仮想HDDを設定して起動する
qemu-system-i386 \
-machine isapc \
-cpu 486 \
-m 16 \
-no-fd-bootchk \
-drive file=msdos_hdd.img,format=raw,if=ide,index=0 \
-drive file=Disk01.img,format=raw,if=floppy,index=0 \
-boot order=a
以下のような画面になったら次のフロッピーへ入れ替える必要がある
以下の方法で入れ替える
ctrl-alt-2
change floppy0 Disk02.img
ctrl-alt-1
3枚目までインストールが終わったら以下のような画面になるのでQEMUを閉じる
QEMU上で仮想HDDから起動する
qemu-system-i386 -drive file=msdos_hdd.img,format=raw
Shift + 9でコマンドの画面へ移ると見慣れたMSDOSの画面になる。
最後に
筆者の所有しているPocket8086はCF(コンパクトフラッシュ)カードからMS-DOSを起動するのですが、Windowsへ繋いだ時に誤って修復してしまい、起動できなくなりました。
QEMU上で仮想HDDへインストールしDD命令でそのまま書き込むと起動できるかと思ったのですが、書き込まれたブートローダに問題があり起動ができません。
Missing operation systemと表示されます。
ブートローダを確認するとMissing operating systemの文字列が確認できるので実行はしているが何かしらのエラーが出ているのだと思う。
ブートローダを修復して試してみる。
sudo dd if=msdos_hdd.img of=mbr_dump.bin bs=512 count=1
sudo xxd -g1 -l512 msdos_hdd.img
test@test-ThinkPad-X280:~$ sudo xxd -g1 -l512 msdos_hdd.img
00000000: fa 33 c0 8e d0 bc 00 7c 8b f4 50 07 50 1f fb fc .3.....|..P.P...
00000010: bf 00 06 b9 00 01 f2 a5 ea 1d 06 00 00 be be 07 ................
00000020: b3 04 80 3c 80 74 0e 80 3c 00 75 1c 83 c6 10 fe ...<.t..<.u.....
00000030: cb 75 ef cd 18 8b 14 8b 4c 02 8b ee 83 c6 10 fe .u......L.......
00000040: cb 74 1a 80 3c 00 74 f4 be 8b 06 ac 3c 00 74 0b .t..<.t.....<.t.
00000050: 56 bb 07 00 b4 0e cd 10 5e eb f0 eb fe bf 05 00 V.......^.......
00000060: bb 00 7c b8 01 02 57 cd 13 5f 73 0c 33 c0 cd 13 ..|...W.._s.3...
00000070: 4f 75 ed be a3 06 eb d3 be c2 06 bf fe 7d 81 3d Ou...........}.=
00000080: 55 aa 75 c7 8b f5 ea 00 7c 00 00 49 6e 76 61 6c U.u.....|..Inval
00000090: 69 64 20 70 61 72 74 69 74 69 6f 6e 20 74 61 62 id partition tab
000000a0: 6c 65 00 45 72 72 6f 72 20 6c 6f 61 64 69 6e 67 le.Error loading
000000b0: 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 operating syste
000000c0: 6d 00 4d 69 73 73 69 6e 67 20 6f 70 65 72 61 74 m.Missing operat
000000d0: 69 6e 67 20 73 79 73 74 65 6d 00 00 00 00 00 00 ing system......
000000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 01 ................
000001c0: 01 00 06 0f 3f dd 3f 00 00 00 e1 69 03 00 00 00 ....?.?....i....
000001d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa ..............U.
ChatGPTに聞くといろんな可能性をあげてくれたので次回試します。