AmigaOSのHDDジオメトリ (つづき)
AmigaOS4.1FEをエミュレータにインストールしてる内に、以前にゾンビ化したA4000TのHDDイメージ(HDFファイル)でもブートしてみたくなって、やろうとしたら上手くいかなかったのでメモ。
A4000Tでは、SCSIの4GBのHDDを使ってた。HDDイメージを作った際、手近に4GBのファイルを保存できるメディアが無かったのかどうか忘れてしまったけど、HDD全体をイメージ化したRDB(Rigid Disk Block)ファイルではなくパーティション毎にイメージ化したHDFファイルを作ってた。
AmigaOSは、HDDにアクセスする際、LBA(Logical Block Address)ではなくCHS(Cylinder, Head, Sector)アドレッシングを使うみたい(?)で、パーティションをマウントするにはこのCHSのジオメトリ情報が必要。しかし保存していたHDFファイルに、それら情報は添えられてなかった(ばか)。
SCSIって普通LBAぢゃないの?と思いながら、ジオメトリ情報をどこかに保存してないか探すけど見つからず…。
xdftoolというHDFファイルの読み書きが出来るツールを作ってるヒト発見(GitHub)。
このツールがパーティションにアクセス出来るようなHead(Surface)数とSecter/trackを見つければいいんでは?と、それっぽいスクリプト書いて探ってみた。
昔触れていたATAの仕様が頭にあったのでHeadとSector/trackの最大値をそれぞれ15, 63にしてパラメータ振ってみたけど、バッチリな感じの数字は見つからず。ところどころファイル一覧くらいは見れる組合せはあったけど。
そうこうしている内に、昔のWinUAEの設定ファイルが見つかり見てみると…
- blocksize="512" sectors="572" reserved="2" surfaces="1" devicename="DH0" (サイズ約200MB)
- blocksize="512" sectors="572" reserved="2" surfaces="1" devicename="DH1" (サイズ約850MB)
- blocksize="512" sectors="3326" reserved="2" surfaces="1" devicename="DH2" (サイズ約1GB)
- blocksize="512" sectors="3326" reserved="2" surfaces="1" devicename="DH3" (サイズ約1GB)
- blocksize="512" sectors="3326" reserved="2" surfaces="1" devicename="DH4" (サイズ約1GB)
- blocksize="512" sectors="3326" reserved="2" surfaces="1" devicename="DH5" (サイズ約1GB)
- blocksize="512" sectors="3326" reserved="2" surfaces="1" devicename="DH6" (サイズ約200MB)
…みたいな感じで予測は全然外れてた orz (そもそもHDDも4GBぢゃないみたい?)
Sector/track(sectors)もパーティションサイズに必ずしも比例していないようで。
| 固定リンク
| コメント (0)
| トラックバック (0)
最近のコメント