2021年03月06日
川俣晶の縁側ヴィンテージ・パソコン total 1141 count

PC-9801+ICM MO3120で書いたと思われるMOメディアのフォーマット解析 (パート2)

Written By: 川俣 晶連絡先

 問題が発生する理由と基本的な対処方法と、1ファイルがまだ処理できていない旨の説明は以下に書いた通り。

 問題は残された1ファイルの読み出しである。

 当初、様々な未知の問題があるかのように見えたが、実はそうではないことが分かった。

 根本的な問題はツール側でクラスタサイズの認識をバグっていて、セクタを過剰に読み過ぎて関係ないディレィトリーのエントリーが存在するかのように誤認していた誤動作が問題であり、このバグを取ると、残った問題は以下のみであった。

  • Sub Directory: C:\(中略)\SYSTEM~1を読み出そうとしても未使用セクタを読み出してしまい、初期化された状態のデータをディレクトリとして解釈できずに落ちていた。

 今回は長いファイル名に対応する必要はない(そもそも長いファイル名は含まれていない)前提であったが、実はこの前提は間違っていた。問題のMOには、システムが生成したと思われる"System Volume Information"および、その短いファイル名表現である"SYSTEM~1"が含まれていた。そして、"System Volume Information"の内容が不適切だったとして、ここは意味のあるユーザーデータは含まれていないと見なせるので、単純に"SYSTEM~1"は読み飛ばすという処理で対処可能であった。

解決 §

 以下の対策はhttps://github.com/autumn009/d88explorerの"BrokenMOFatImageDump$$!にマージ済みである。

  • クラスタサイズの認識バグのfix
  • "SYSTEM~1"のスキップ