桂...@横浜です. 先日分かったのですが, ルートファイルシステムのブロックサイズを64kBにした場 合, ファイルシステムの読み込みに失敗してシステムのブートが出来ないようで す.
最近SSDの価格が下がってきたこともあり, 次回はシステム領域のSSD化を考えて SSDで性能が出る64kBブロック(UFSで設定可能な最大値)でルートファイルシステム を作成し, 7-STABLE(3月前半ぐらいのi386)をインストールしました. インストー ルしたディスクはHighPoint RR1740でRAID化したもので, これ自体は7.0のころに 正常にブートできた実績のあるものです. で, インストール後にブートしてみると Guessed BIOS device 0xffffffff not found by probes, defaulting to disk0: can't load 'kernel' と表示されてloaderプロンプトに落ちるという状態になりました. この現象は最近 7.1-STABLEなどで報告されているloaderの不具合と表面上は同じため, 当初は loaderの不具合と思いました. ところが以下のような対策を取っても問題は解決せず, 一時暗礁に乗り上げた恰好 になってしまいました. 1. 過去にブートに成功していた古いloaderおよびboot2に入れ替え →変化なし 2. loaderを使用せず, boot2の"boot:"プロンプトから/boot/kernel/kernelを直接 起動 →カーネル読み込みのくるくるプロンプトの途中で固まる 3. 正常に起動できるIDEディスクを接続し, loaderまで立ち上がったところから loaderプロンプトでrootdevおよびcurrdevを設定し直して(この場合, パーティ ション/スライスはlsdevで見える)起動 →loaderがエラーを表示して停止. lsコマンドでファイルシステムを見ようと しただけでも停止 どうしようも無くなったところで, 正常に起動するディスクはUFSデフォルトの 16kBブロックでnewfsしていたことを思い出し, 16kBブロックでnewfsしなおして インストールしなおしたところ, 全く問題無くブート出来てしまいました. loaderもカーネルと同様に, 64kBブロックのUFSでは不完全な状態で読み込みが行 われ, パーティション/スライスが正常に読めないといった異常動作を起こしてい たみたいです. どうもブートプログラムの内, 64kBブロックのUFSの読み込み部分が怪しそうなの で sys/boot/common/ufsread.c あたりをざっと読んでみたのですが, ぱっと見で は最大ブロックサイズ(64kB)までは考慮した作りになっていそうな雰囲気です. そこで質問なのですが, 標準のブロックサイズ以外のUFSでブートに成功したとい う例は無いでしょうか? もしかしたら私の環境が原因かもしれませんし. あるいは ソースの調べるポイントは他に無いでしょうか? -- Katsurajima "Raven" Naoto(桂島 直人) Family Emblem: Circle and Left 3 Clove-TOMOE(丸に左三つ丁子巴) e-mail: ra...@katsurajima.jp