渡辺一寛です。

At Tue, 25 Dec 2007 11:47:50 +0900,
NAKAJI Hiroyuki wrote:
> 1. pc98のfdisk labelがamd64のfdiskコマンドで見えないのは当然ですか?

たぶんそうでしょう (スライス、いわゆる FDISK パーティションのことです
よね?)。逆のパターン (i386 なディスクを pc98 で読む) は可能だった記憶
がありますが、今もできるのかな?

> 2. ddで取り出したディスクイメージからどうにかする方法はありませんか?

ちょっと試してみたところ、パーティション単位で別ファイルにしてやれば、
pc98 なディスクイメージも i386 上で mdconfig(8) して普通に mount でき
ました。

ディスクラベル情報が生きているなら、マジックナンバ (0x82564557) を頼り
にディスクラベルを探し、そこから各パーティションの大きさと、ディスク先
頭からのオフセットをセクタ単位で知ることができるはずです。ディスクラベ
ルは、i386 も pc98 も a パーティションの先頭からオフセット 512 バイト 
(1 セクタサイズ、ということらしい) で始まる 276 バイトです。起動ディス
クでないなら、ちょっと違うかも知れませんが...。

ディスクラベルの構造は <sys/disklabel.h> に書かれています。

ただ、元の HDD が

> 問題の da1 は、メルコの DSC シリーズの 30GB なのですが、中身はウェスタンデ
> ジタルでした。これを USB-IDE 変換ケーブルで FreeBSD/amd64 につなぐと、以下
> のように認識されました。

ということで SCSI -> ATA 変換インタフェースの先に繋がっていたわけで、
ディスクラベルにどのような情報が入っているのか、少し気になるところです。

ディスクラベルも壊れているとなると、スーパーブロックを頼りにディスクラ
ベル情報を推定するしかないでしょう。
---
Watanabe Kazuhiro 
([&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;])

メールによる返信