Linuxにおけるメディア保存・復旧ツールの使い方 (ddrescueとfdutils)

Linuxにおけるメディア保存・復旧ツールの使い方 (ddrescueとfdutils)

Linuxでは、損傷が想定されるレトロコンピューターのハードディスクやフロッピーディスクを取り扱うのに便利な、ddrescue[1][2]とFdutils[3]コマンドが提供されています。今回は、ddrescue[1][2]とFdutils[3]を活用する上で必須となるパラメータや、補助スクリプトとなるFdutils-aux-jp[12]を紹介します。 ddrescue UNIXの標準的なディスク複製のコマンドとしてはdd[5]があります。ただし、ddは正常なデバイスには有効ですが、不良セクタによる読み取りエラーが発生が想定されるデバイスへの想定が不十分[6]であり、損傷が想定されるレトロコンピューターのハードディスクやフロッピーディスクのバックアップ、リストアには不適切です。 GNUのddrescue[1][2]は、デバイスの読み取りエラーを前提としたコマンドであり、不良セクタに対しての再読み込みやディスク損傷に対してアルゴリズムが最適化されています[1][2][6]。基本的にddの上位互換として利用できるため、物理やSCSIエミュレーターのハードディスクのバックアップやリストアにはddrescueを定期的に利用しています。 ddrescueには豊富なコマンドラインオプション[1][2]がありますが、ここではレトロコンピューターのデバイスを対象にする上で、有効なオプションについて列記します。 -r (–retry-passes=n) rオプションは不良セクタが正常に読み取れるまでの再試行回数で、-1を指定すると成功するまで再試行を続けます。標準(無指定)での試行回数は0ですので、目的に応じて、適切に設定したいパラメーターです。 フロッピーディスクが対象の場合には、ディスクドライブ側を損傷を与えるような可能性がない(例:カビがない)場合、再試行により読み取れる可能性もあります。極端に言えば、再試行回数を無制限(-1)にして一晩寝て待ってみても良いでしょう。 ただし、ハードディスクが対象、特に異音がしている場合には、物理的な故障の可能性も高いため、指定する再試行回数は考慮すべきです。ある程度妥当と思われる回数を設定して、ddrescue完了後に各プラットフォームのディスク修復プログラムを実行します。 -d (–idirect) dオプションは、直接デバイスにアクセスすることにより、復元率の向上を目的とします。ただし、ddrescueはデバイスのセクタサイズを認識できないため、後述するbオプションの指定が合わせて必要です。 -b (–sector-size=byte) 対象デバイスの管理データの最小単位であるセクタサイズを指定します。標準(無指定)では512(バイト)となりますので、フロッピーディスクである場合には、対象のセクタサイズ(256, 512, 1024)を指定します。 Fdutils レトロコンピューターにおいても、SCSIなどの標準的なハードディスクデバイスは、ddrescue単体で運用できます。しかしながら、フロッピーディスクにおいては、IBM-PC標準以外は、基本的にメディア情報の指定が必要です。 Fdutils[3]はLinuxでのフロッピーディスク関連ツールを集めたパッケージであり、その中にフロッピーディスクコントラーを制御するsetfdprmコマンドが含まれています。ddrescueをフロッピーディスクで利用するには、このsetfdprmでのパラメータ設定の併用が必要です。 setfdprm 海外の主要機種においては、Fdutilsと一緒に配布されている「/etc/mediaprm」で定義済のため、setfdprmで簡易的な指定が可能です。しかし、残念ながら、日本のレトロコンピューターについては、一部の機種(FM-8/16など)しか含まれていません。 従って、日本のレトロコンピューターにおいては、より詳細なパラメーターを直に指定する必要があります。以下に、日本の主要なレトロコンピューターでの標準的なフォーマットを取り扱うために必要な、setfdprmのパラメーター一覧を示します。 Computer Structure Media density head cyl…

Read more

FDX68コントローラー環境整備とディスクドライブ設定

FDX68コントローラー環境整備とディスクドライブ設定

FDX68は、GIMONSさんが個人で開発しているRaspberryPiをホストするフロッピーディスクドライブエミュレータ兼コントローラです。FDX68にはコントローラー機能があるため、PCやレトロパソコンのホストなしでフロッピーディスクの読み込み環境が構築できます。 FDX68をコントローラーとして、動作確認したフロッピーディスクを記載します。今回は、レトロパソコン本体付属のドライブではなく、PC/AT互換機やPC98向けの、現在でも中古で入手可能なディスクドライブで、いくつか動作確認をしてみました。 FDX68の環境設定 まずは、FDX68のモニターレスの環境を整備します。FDX68は、Raspberry Pi OS Liteでの利用を推奨しており、コマンドラインベースの操作となります。そのため、基本的にはSSHによるリモートアクセスが簡便なため、Raspberry Piのモニターレス・キーボードレスで運用環境を構築します。 モニターレス運用の設定 最近のRasbianでは、初期設定でmDNSが有効になっています。mDNSはZeroconfのプロトコルでマルチキャストでノードの発見が可能です。リモートアクセス運用のため、raspi-configでSSHの有効化と、覚えやすいホスト名を設定します。 項目 メニュー 備考 ホスト名 System Options -> Hostname 例: fdx68 SSH Interface Options -> SSH – mDNSはAppleのmacOSは元より、最近のWindows10でもサポートされているため、設定したホスト名(fdx68など)へSSHでのアクセスが可能になります。macOSの場合には、標準で<ホスト名>.localでアクセスが可能です また、パスワードレスのアクセスのためにSSHの公開鍵認証設定や、scp主体の運用でない場合には、NFSサーバーの設定も便利かもしれません。その他、RaspberryPiのモニターレス運用に便利な設定は、以下の公式資料を参照して下さい。 FDX68のインストール FDX68は、コンパイル済みのバイナリを展開してインストールします。例えば、以下のような感じで、任意のディレクトリにパッケージを展開します。…

Read more

Windows11時代のフロッピーディスク運用

Windows11時代のフロッピーディスク運用

Windows 11の登場で、物理的なFDDインターフェースを有する世代のPC、IntelのCPUで言えばCore 2 Duo世代の機種が、アップグレードの動作要件[1]を満たさない機種となってしまいました。Windows 10は要求されるシステム要件[8]も少なく、10年前のPCの性能でも問題なく動作するため、Core 2 Duo世代の古い機種が廃棄されず、今だにに中古で流通する背景にもなっていました。 しかし、Windows 11の登場により、残念ながらWindows 10も2025年10月でのサポート終了[8]の期限が設定され、近い将来には、FDDインターフェースを有する旧機種が急速に市場から消え廃棄される懸念も出てきました。また、最近のWindows 11[1]やUbuntu 20.04LTS[9]などでは32bit版の提供が終了し、64bit版を快適に動作させるるハードウェア要件も厳しくなってきているため、いったん現状を整理してみました。 機種の選定 最初に、機種の選定です。FDDインタフェースの搭載は、CPUの世代的にはCore 2 Duoの世代、ぎりぎり第1世代(Nehalem)Core iプロセッサ辺りが最後の世代となります。注意点としては、この世代の対応FDD台数は(かつての標準的な)2台構成ではなく、1台に制限されています。 とは言え、最近の64bit版のWindowsやUbuntuの動作や、性能や消費電力を考慮すると可能な限り最新の世代の機種を選定したいところです。また、後述するように公式なWindows 11のシステム要件[1]は満たさないものの、(今後の市場での暴落や廃棄を踏まえて)Core 2 Duoの世代の機種は一番の狙い目かと思います。 前述のようにこの世代のPCは、FDDインターフェイスが1台までのため、物理機とエミュレータの運用も併用もあり、現在は複数台で運用しています。最近の機種はカバー開閉やドライブの固定にはドライバーが不要に簡素化されたものの、やはりドライブの交換は面倒なため、複数台での運用が簡便です。現在稼働でしている機種一覧と注意点を以下に示します。 メーカー名 製品名 発売日 CPU メモリ仕様 最大メモリ容量 FDD I/F…

Read more

SCSIハードディスクエミュレーター性能比較

SCSIハードディスクエミュレーター性能比較

最近は、SCSIハードディスクのエミューレーターが多数登場しています。共通する特徴としては、従来のハードディスクとは異なり、SDカードやCFカードなどの半導体メモリをディスクドライブとして運用ができる点です。 今回、限界性能を計測する目的としてUltra SCSI(20MB/s)の機材でGNOME Disksによるベンチマークと、レトロコンピュータでのアプリケーションベンチマークとしてPower Macintosh(5MB/s)でMacBenchでの性能評価を実施してみました。 測定対象および共通条件 今回のベンチマークは、変換番長(初代/PRO)、SCSI2SD(V5.1/V6)、RaSCSIの計5機種を対象としました。評価時点の各SCSIハードディスクエミュレーターの型番およびファームウェアは、以下の一覧となります。 Vender Product ファームウェア 備考 クラシックPC研究会 変換番長 – 販売終了品 クラシックPC研究会 変換番長PRO V.3.2.2.2 SCSI2SD V5.1 v4.8.3 SCSI2SD V6 (RevF) v6.2.9 GIMONS RaSCSI v1.44p1 (ベアべタル版) Raspberry…

Read more

FM TOWNS対応SIMM仕様および汎用品の流用について

FM TOWNS対応SIMM仕様および汎用品の流用について

FM TOWNSのメモリは、72ピン、32ビット(パリティなし)のFPM(Fast Page Mode)のSIMM(Single Inline Memory Moudle)仕様に準拠しており、SIMMモジュールの1枚単位での増設が可能です。 ただし、当時のPC/AT互換機やMacintoshと72ピンSIMMとは形状的な互換性はあるものの、他機種用に一般的に流通しているSIMMモジュールは流用(認識)できない場合もあります。 これは、FM TOWNS用と一般に流通しているJEDEC仕様のSIMMモジュールとでは、容量やアクセス速度の認識に用いる信号(Presence Detect)ピンの仕様(用途)が異なるためです。 TOWNSのSIMM PD(Presence Detect)仕様 FM TOWNSのSIMMモジュールは、その容量の識別方法についてTOWNS独自の仕様があり、それが一般的(JEDEC)な仕様とは異なっています。同時期のNEC-9801のSIMMモジュール(PC-9801-61仕様)と同じく機種固有の仕様であり、これが一般的なSIMMモジュールがTOWNSで認識できない要因となります。 PD(Presence Detect)ピンの位置 PD(Presence Detect)信号線は、SIMMモジュールのにて67ピン〜70ピンの計4ピンに割り当てられており、一般的なJEDEC仕様ではその容量とアクセス速度を識別しますが、TOWNSでは容量のみを独自の仕様で識別しています。参考までに、以下が、当時TOWNS用の4MB拡張メモリとして販売されていたSIMMモジュールの写真です。 市販品のSIMMモジュールには、上の写真のようにPD(Presence Detect)信号線を右上の基盤パターン上で結線されているタイプの製品があります。TOWNSで、後に説明する流用に改修が必要な場合には、このようにPD信号線が基盤パターン上で結線され、回路が目視でも確認できるタイプがお薦めです。 JEDEC仕様との違い TOWNSのPD仕様は容量のみの識別ですが、容量とアクセス速度を識別する一般的なJEDEC仕様を対比させると以下の表となります。 現役時代は、TOWNS 20FとMacintosh LC IIIでSIMMを使い回していたのですが、Macintoshと共用できていたのは、おそらくは2MBのSIMMだったのでしょうでしょう。 1MB・2MB・16MB・32MBは流用可能 結果的には、一般的なJEDEC仕様で流用できる可能性のあるモジュールは、の1MB・2MB・16MB・32MBの4種類(1MB…

Read more