ルートマウントで固まった(冷汗

久しぶりに触りましたよ(汁

ファイルサーバのシステムディスクのバックアップを日曜日に実施して嵌まりました。
復旧に時間を要したので、後日のためにメモっておきます。

実施したかったこと

システムディスクのクローニングと入替

方法

対象サーバをシャットダウンした後にHDDデュプリケータでコピーして入替
(同様のことをdd, dump & restoreでも行うことが出来ますが、金にモノを言わせてwハードコピー方式としました)

OS

FreeBSD 5.5R (i386)

ハードウェア

NEC Express5800/110Gc(P4/3G(1)) [N8100-1134Y]
2006年頃の購入でPrescottコアのCeleron D が搭載(LGA775 Socket)

現象

入れ替えたSSDにてシステム起動時に、BSDブートメニューからdefaultを選ぶと起動シーケンスが流れたのちに

Mounting root from ufs:/dev/ad8s1a

の表示のまま固まってしまい起動しない。

苦慮

ルートマウントが出来なきゃ何ともならんなーと思いつつマウント失敗を調べても、いまいちドンズバな事例が出てこない。
近そうだったのがusers-jpの90470「カーネルコンパイル後、 mountroot で固まる」でしたが、リードオンリーではmount可能とのこと。

結果的に上記(90470)へのレス(90476)に

>SAFE モードでならフリーズしないというのならば、
>「固まる/固まらない」に関しては ACPI 周りの問題でしょう。
>本題の原因追求のじゃまにならないように、
>当面は ACPI を無効にしておけばよいでしょう。

が大正解。
ACPIが今回の事象を引き起こしていました。

実際のところはroot mountした直後に/boot/以下の設定を読んで、ACPIをオンにするところで止まっているのでしょう。

切り分け

問題の切り分けに使用したのはFreeBSDのブートメニューで、safe modeやACPI disable等の中で、with ACPI disableにてすんなり立ち上がりました。
ACPIに注目していたのは、上記MLでのコメントと固まった後の強制終了時に電源ボタンを押すとACPIがまだ無いとの趣旨のメッセージが表示されていたため。

対処

遠隔で再起動してから固まられても困るので、

/boot/device.hints

hint.acpi.0.disabled="1"

を追加しました。

余談

その1

使用したHDDデュプリケータはCenturyの"これdo台Hi-Speed"(KD25/35HS)です。
結構高い物でしたが、ufsで合計80GBの転送が30分以内に終わったので大変満足しております。

その2

問題が起きたドライブはPATA/SATA併用のマザーでシステムのdfは

Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/ad8s1a     1.9G    227M    1.6G    12%    /
devfs           1.0K    1.0K      0B   100%    /dev
/dev/ad8s1e     989M     12K    910M     0%    /tmp
/dev/ad8s1f      65G     26G     35G    43%    /usr
/dev/ad8s1d     1.9G     75M    1.7G     4%    /var

でした。これと/etc/fstabの情報はあると良い。

その3

停止して取り出したHDDを別マシンにUSB接続して使用しました。

mount -w /dev/da0s1a /mnt
mount -w /dev/da0s1d /mnt/var
mount -w /dev/da0s1e /mnt/usr

等として使用して、終わったら、

cd
umount /mnt/usr
umount /mnt/var
umount /mnt

としてから外します。



RAJ商会