PokuG stdio.h

stdio.hはおまじない

MENU

PC98フロッピーディスクのイメージ化と書き戻し方法について

フロッピーディスクの寿命ってどれくらいでしょうか?

ググってみると、「数年」や「2~10年」などアバウトな値が出ていますが、フロッピーディスク自体20世紀のものなので、最低20年はたっています。

このままフロッピーディスクが読みだせなくなるのをじっと見守るのはよろしくありません。

そういう訳で、本記事は3.5インチのPC98フロッピーディスクのイメージ化と書き戻し方法についてのメモ書きです。

※5インチフロッピーディスク自体持っていないので本記事は3.5インチ専用です

概要

ddコマンド

今回のイメージ化と書き戻す方法はLinuxの「ddコマンド」というバックアップのコマンドを使います。

ddコマンドとはUnix系のOSにあるコマンドで、データのコピーや変換をブロックデバイスへ直接読み書きして行うことができます。

ddコマンドを使えば、ファイルシステムの種類やOSとは関係のないところでコピーを実施する事が可能なので、このコマンドを使用します。

大雑把な手順

大雑把に以下の手順になります。

  • ddコマンドでフロッピーディスクのイメージファイルをハードディスクに保存する
  • ハードディスクに保存したイメージファイルをddコマンドにより別のフロッピーディスクへ書き戻す

いわゆるddコマンドを使用したバックアップ&リカバリ方法になります。

用意するもの

Raspberry Pi 4 Model B

f:id:yarufu101:20210916185453j:plain:w500
Linuxのコマンドを使うため、Raspberry Pi 4を使用します。
本PC98記事には純レギュラーのRaspberry Pi。
あれば便利です。

3モードフロッピーディスクドライブ(USB接続)

f:id:yarufu101:20220416173334j:plain:w500
PC-98、TOWNS、X68などの日の丸パソコンで採用されていた1.23MBフォーマットのフロッピーディスクも読み込める3モードフロッピーディスクドライブを用意しましょう。

イメージ化元と書き出し先のフロッピーディスク

f:id:yarufu101:20220416173801j:plain:w500
今回は左側の「MS-DOS6.2システムディスク1」をイメージ化します。

書き戻し先は右側のブランクフロッピーディスクへ書き出します。

イメージ化の手順

ラズパイにフロッピーディスクドライブを取り付ける

f:id:yarufu101:20220416180415j:plain:w500
USBフロッピーディスクドライブを用意したので普通にUSB接続します。
その後、ラズパイを起動し、フロッピーディスクを挿入します。

ddコマンドでPC98のフロッピーディスクをイメージ化

ここからは、ラズパイでの実行になります。

Raspberry Piにつけたフロッピーディスクドライブのドライブ識別子の確認

以下のコマンドで確認します。

sudo fdisk -l

下が「sudo fdisk -l」の結果です。
f:id:yarufu101:20220416192216j:plain
上記画像の一番下の黄色の文字に、
「Disk /dev/sda: 1.2 MiB...」
とあり、フロッピーディスクドライブは「dev/sda」だとわかります。

ディスクイメージの取得

以下のddコマンドを使いディスクイメージを取得

sudo dd if=/dev/sda of=/home/samba/dos6_1.image bs=512 conv=noerror,sync

コマンドの意味は以下になります。

  • ドライブ識別子「dev/sda」(フロッピーディスクドライブ)の内容を、
  • ラズパイのフォルダ「/home/samba/」へ、
  • 「dos6_1.image」というファイル名でディスクイメージを取得

以下が実行結果。
f:id:yarufu101:20220416193336j:plain

Windows11上からもイメージファイルが保存されているのが分かります。
f:id:yarufu101:20220416193447j:plain
※ラズパイの「/home/samba/」を「public」という名前でネットワーク共有しています

以上でイメージ化終了です。

イメージをフロッピーディスクへの書き戻し手順

イメージ化の反対をおこないます。

注意点

書き戻す前にフロッピーディスクのフォーマットをおこなっておく

書き戻す前にクイックフォーマットではなく、通常のフォーマットをおこなっておきましょう
理由は不良セクタがあると書き戻しに失敗するためです。
さらに言うと家にあるフロッピーの保存状態が悪いから
不良セクタの検出のために通常のフォーマットをおこないましょう。
スキャンディスクでもよいかもしれません。

※ちなみに通常のフォーマットで不良セクタが発覚してもデータが戻らなかった経験は今のところありません。
 不良セクタが発覚しても使用禁止セクタとしてフラグが付く(?)ので、該当セクタが使われなくなるからだと思います。

ラズパイにフロッピーディスクドライブを取り付ける

イメージ化で解説した通りです。省略します。

ddコマンドで取得したイメージをフロッピーに書き戻す

Raspberry Piにつけたフロッピーディスクドライブのドライブ識別子の確認

「sudo fdisk -l」を実行します。
これもイメージ化で解説した通りなので省略します。

ディスクイメージを書き込む

以下のddコマンドを使いディスクイメージを書き込みます。

sudo dd if=/home/samba/dos6_1.image of=/dev/sda bs=512 conv=noerror,sync

f:id:yarufu101:20220416213306j:plain

コマンドの意味は以下になります。

  • ラズパイのフォルダ「/home/samba/」の、
  • 「dos6_1.image」というディスクイメージを、
  • ドライブ識別子「dev/sda」(フロッピーディスクドライブ)へ書き出す

以上で書き出し終了です。

確認

f:id:yarufu101:20220416215018j:plain:w500
きちんと書き戻されていると思います。。。

終わり

PC98フロッピーディスクのイメージ化と書き戻し方法についてでした。

今回はMS-DOSのインストールディスクでおこないましたが、「PC-9821のシステムインストールディスク」もイメージ化してバックアップを取っておいた方がいいと思います。

と言うか、「PC-9821のシステムインストールディスク」の為にイメージ化の方法を調べたという経緯があったります。

ちなみに、コピープロテクトがあるゲームのフロッピーディスクは試したことはありません。
壊れたら怖いので・・・

オマケ

ちなみに、ddで取得したイメージファイルはPC98のエミュレーターで普通に読み込めたり、「Virtual Floppy Image Converter」で別のフォーマットのイメージも変換できるみたいです。
f:id:yarufu101:20220416215604j:plain:w500
ねこ

f:id:yarufu101:20220416215906j:plain
変換