たまたま見つかったフロッピーと格闘した記録です。
実家にフロッピー&ドライブあったんで自作os本のサンプル焼こうと思ったらエラー発生。 pic.twitter.com/Vy3Pnlyz4Z
— yuyabu (@yuyabu2) May 4, 2018
ディスクエラーなら別の試せばいいか。もう4回遊べるドン! pic.twitter.com/aaUtq8mCnF
— yuyabu (@yuyabu2) May 4, 2018
今見返したら埃かぶってて汚い
ddでイメージをフロッピーに書き込む
Mac OSでfat12でフォーマットする方法が見つかりませんでした。とりあえず最初から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