Yabu.log

ITなどの雑記

実家にフロッピーとドライブがあったのでOSを書き込んでブートしてみた(失敗)

たまたま見つかったフロッピーと格闘した記録です。

今見返したら埃かぶってて汚い

ddでイメージをフロッピーに書き込む

Mac OSfat12でフォーマットする方法が見つかりませんでした。とりあえず最初からfat12として認識されているのでフォーマットせずにそのままバイナリを書き込もうと思います。

$dd if=./helloos.img of=/dev/disk2
dd: /dev/disk2: Resource busy

エラーが出たのでググる

https://qiita.com/mogetarou/items/b193be4974f9b0282cc6

アンマウントが必要とのこと。

sudo diskutil umount "/Volumes/Untitled"

再実施

$ sudo dd if=./helloos.img of=/dev/disk2
dd: /dev/disk2: Input/output error
49+0 records in
48+0 records out
24576 bytes transferred in 4.451240 secs (5521 bytes/sec)

ググって見たところInput/output errorはセクタ不良っぽいので別のディスクでやる。

$ sudo dd if=./helloos.img of=/dev/disk2
2880+0 records in
2880+0 records out
1474560 bytes transferred in 172.665357 secs (8540 bytes/sec)

うまくいった!

$ df
Filesystem                                  512-blocks      Used Available Capacity iused               ifree %iused  Mounted on
--(フロッピー以外省略)--
/dev/disk2                                        2847         2      2845     1%     224                   0  100%   /Volumes/HELLO-OS

書き込み内容の確認(ddのダンプ)

ちゃんと書き込めてるか、ddでフロッピーの中身をダンプして見ます

$sudo dd if=/dev/disk2 of=./write_content

diffで調べたところ,どうやら差分はないようです。(バイナリの読み書きに成功)

diff helloos.img write_content

フロッピーに書き込んだバイナリが勝手に変わった

うまくいかず、何度か試している間に、フロッピーに書かれているバイナリの値が変わってしまいました。 バイナリの比較はdiffではなくcmpを使うと内容まで表示してくれて便利です。 cmp コマンドの-lで表示しているものは8進数のようです。(バイナリエディタで見たら差分の内容が0x00と0xFFだったため。補足:0xFFは8進数で377)

cmp -l <file1> <file2>
<差分のある位置(10進数)> <ファイル1内容(8進数)> <ファイル2内容(8進数)>

変わった位置(将来オフセットなどに詳しくなれば何かわかるかも。)

  • 516(0x204)
  • 5124(0x1404)
  • 9729(0x 2601)
  • 16897(0x4201)
cmp -l helloos.img write_content 
    516   0 377
    517   0 377
    518   0 377
    519   0 377
    520   0 377
    521   0 377
    522   0 377
    523   0 377
    524   0 377
-(略)-

変わってしまったところの内容をみると、 完全に意味不明になっているものが殆どでしたが、一部asciiで読み取れるものがありました。

  • BG uid
  • INDEX
  • FSEVEN~1
  • AAAAAAAA-BBBB-CCCC-DDDD-FFFFFFFFFFFFこんな感じの何かのシリアルIDのようなもの

いずれも元のバイナリでは00の部分に書き込まれました。 他複数台のpcに何度かつないだりしているので、何か勝手に書きこまれたのかもしれません。 これは機器の故障によるものなのか、私の意図していないプログラムの挙動によるものなのかは不明です。 これ以上時間を書けても進展はなさそうなのでとりあえずddでフロッピーにバイナリが書けた。というところで終わっておきます。

感想

  • 書き込みに失敗
  • 書き込めたが読み込みに失敗
  • そもそも認識できない
  • 勝手に内容が変わる

などフロッピーに苦戦した1日でした。ラベルを見る限り15年以上前のものらしく、殆ど使われていないと思われるので仕方がないのかもしれません。Macでフロッピーを外部記憶装置(補助記憶装置)として扱う分には問題ないようです。ギガテラ時代に1.4MBとか表示されると笑っちゃいますが。

参考にしたサイト

http://www.atmarkit.co.jp/ait/articles/1711/30/news027.html http://ubiqlog.com/archives/11282 https://qiita.com/mogetarou/items/b193be4974f9b0282cc6 https://unix.stackexchange.com/questions/223444/interpreting-dd-input-output-error https://askubuntu.com/questions/253117/how-do-i-fix-an-input-output-error-using-dd https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1089835305 https://support.apple.com/ja-jp/HT202796 http://x68000.q-e-d.net/~68user/unix/pickup?dd