
こいつに旧サーバのHDDを移植して動かすまでの流れ。
まず、そのままHDDを移植して起動すると起動時に
ad0: READ command timeout tag=0 serv=0 - resetting
ata0: resetting device...
で、固まりました。
次に起動時に
kernel-load時にスペースを押すとカーネルローダーのプロンプトでオプションを設定できるようになります。そこで
set hw.ata.ata_dma=0
boot
で起動すると今度はfstabにかかれているhddがみえないとおこられました TT
あたらしいdeviceの場所を指定しろとか画面にでているので
ufs:/dev/ad0s1a
と指定してみるけどだめ・・・
resetting deviceはHDDが壊れかけの時にでるみたいだが、この場合は
なんか違うような気がする。
で、調べてみるとありました。どうもFreeBSD.4.x系ではSiS651のチップセットは
不具合があるみたいです
ってことで別マシンのFreeBSDを利用して対策
Shuttle XPC SS51Gに新規HDDを接続してFreeBSDをインストールする場合は4から
実行するといいはずです。
1.別マシンにこのHDDを接続し、fsckを実行
dmesg |grep ad #復旧したいHDDのデバイスの確認
fsck /dev/ad0s1a #復旧したいHDDのデバイス
2.このHDDをmountする
mount -t ufs /dev/ad0s1a /mnt
3./etc/fstabの書き換え
cd /mnt/etc/
vi fstab
ad4s1a -> ad0s1a
ad4s1b -> ad0s1b
に変更
で、ここまで作業したらHDDをShuttleのケースに戻します
4.カーネルローダのプロンプトで以下のようにして起動
set hw.ata.ata_dma=0
boot
こうやらないとまた resetting device...で止まります
5.kernelのソースの変更
cd /usr/src/sys/dev/ata/
vi ata-dma.c
ata_find_dev(parent, 0x06501039, 0) || /* SiS 650 */
ata_find_dev(parent, 0x06511039, 0) || /* SiS 651 */ #これを追加
ata_find_dev(parent, 0x07301039, 0) || /* SiS 730 */
5.でもってカーネルのmakeして入れ替えます
これで、boot時にhw.ata.ata_dma=0しなくても無事に起動できるようになります