FreeBSD で kernel.old から起動する2014年07月06日 00時06分48秒

FreeBSD のローダが変わっているようだ。FreeBSD 10.0 RELEASE では、以前のように第一ローダで /boot/kernel.old としても起動しない。もしかしたら、それ以前から出来なくなっていたのかも知れないが。ブートマネージャと起動ステージによると、今では三段階の起動となっている。不鮮明な記憶でごだごだ言うのは止めにして本題に入ろう。

今のローダで、カーネルを切替えるのは第三のローダで。いわゆるデーモン君のロゴが出て、十秒のカウントダウンを行っている段階だ。「Escape to loader prompt」を選び、プロンプトに下りる。OK がプロンプトだ。この時点で、既に /boot/kernel を読み込んでいるので、一度解放し、任意のカーネルを読み直す。


OK unload
OK load /boot/kernel.old/kernel
OK boot
...

そして、最後に boot で起動開始。ハンドブックによると load kernel.old でも読み込めるみたいだ。

起動しないカーネルを作ってしまった場合の回避策の基本。設定した値が相応しくなかったり、CPU の対象を間違ってしまったり。良く起こる原因はこんなところ。後、make installkernel を新しいカーネルに二度実行しないことも大切。本来の kernel.old が二度目の installkernel で消えてしまう。

次回

コメント

_ Junchoon ― 2014年07月07日 22時00分29秒

10.0-RELEASEには間に合わなかったのですが、stable/10にはr262701で
loaderのbeastieメニューから起動するkernelを選択する機能がMFCされています
ので、来る10.1-RELEASEでは多少ユーザフレンドリーになるかと。

http://svnweb.freebsd.org/base?view=revision&revision=262701

デフォルトでは/boot/kernelと/boot/kernel.oldが選択肢に入ります。

ただ、headの方ではUEFI loaderを使うとbeastieメニューが出せない
(efifbでエスケープシーケンスが未サポートだからだとか)ため、この機能が
使えませんね。 もちろん在来型のloaderならOKですが。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2014/07/06/7380953/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。