とりあえず9.1-RC3でインストール後に9.1-RELEASEのsource treeをsvnして事なきを得る

昨日、手抜きをして手元にダウンロード済みだった9.1-RC3のbootonlyなISOイメージをDVDに焼いて10年前のTOSHIBA dynabook実機インストールした件の続き。

9.1-RC3インストール後にcurrentのソースツリーをsvnしてmakeしたらkern.mkでエラーでまくりで大コケだったので(これについては後日ブログに書く予定)、ひとまずは9.1-RELEASEにアップデートすることに(まあ結果から言うとsource treeの問題ではなくmkファイルのディレクトリを指定する必要があっただけなのだが)。

[text]
# svn co svn://svn.freebsd.org/base/release/9.1.0 /usr/src
[/text]

ローダブルモジュールは作らなくていいので、/etc/make.confにNO_MODULESを追加。

[text]
# vi /etc/make.conf
~~~
NO_MODULES=true
[/text]

そしてconfigファイルをコピーして編集。まあKLDだから別にカスタムカーネルなんて作らんぜって人は不要な作業かもしれない。
必要な場合は、カスタムカーネルに関するドキュメントを一読するのがよいだろう。

[text]
# cd /usr/src/sys/i386/conf
# cp GENERIC MYCONFIG
# vi MYCONFIG
[/text]

編集はdmesgして認識されているデバイス名を参考にしながらチューン。今時はKLDでウハウハだから、こんな作業をする人は以前よりだいぶ減ったのかもしれない……。

config、そしてmake。

[text]
# config MYCONFIG
# cd ../compile/MYCONFIG
# make cleandepend && make depend
# make
[/text]

make終了後にインストールして再起動。

[text]
# make install
# shutdown -r now
[/text]

再起動したら、HDDが認識できない!ということでコンソール画面で停止してしまった。がーん。
仕方がないので再構築のチューン。
なお、カーネル再構築に失敗した場合は1つ前のカーネルで起動して再調整するなどで対応する。「ぎゃーまた気の長い再インストールか!」とパニックする前に以下を一度実行してみたい。

・boot画面で起動モードの選択が表示される(1が通常起動、6がシングルユーザモードなど)。ここでESCキーを押す。
・loaderコマンドラインモードになるので、「boot kernel.old」と入力してEnterキーを押す。
・1つ前のカーネルで起動する。

やばいと思ったときに起動できるようにするためには、以下のように/boot/kernel.oldもしくは再構築前の/boot/kernelなどをコピーしておくといいかもしれない。コピー先の名前はkernel.GENERICやkernel.ORGなど任意でいい。ただしloaderプロンプトで指定するときの名前で忘れてしまわないようにするのがいい(lsすればいいと思うけど)。

[text]
# cd /boot
# cp -R kernel.old kernel.GENERIC
[/text]

dmesgやcat /var/log/messagesで認識デバイスを確認したら、ada0が必要なのは確認しているのだけれど、どうもGENERICやNOTESにdevice adaという記載がいない。これがないからHDD認識しないのだろうか。ATA to CAMだとデバイス名adaで認識されるということのようだ。9.1-RC3インストール時にSATAの認識がなかったからATA to CAMで構築されたということなのだろうか。時間がないのであまり熟読も熟解もしていないので(よくないな)、たぶんdevice adaを追加すればいいのかも、と思い立ち追加してカーネル再構築。

[text]
device ada
[/text]

これで再起動したら認識した。これが正しい対処法かどうかは判らない。おそらくは、さきのページに記載されているようにataの設定を無効にしておけばdevice adaを追加しなくても大丈夫なのではなかろうか。試すの面倒臭いので試してない……。

ひとまず再起動したので、buildworldをすることにする。

コメントを残す

メールアドレスが公開されることはありません。