高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

kernelの更新

サーバーにて、気づくとカーネルのパッケージがやけにたくさんたまっていたので、古いものをいくつか削除することにしました。
すると、再起動後突然vmlinuz(起動イメージ)が見つからないとのエラー表示が。どうしたことやら。
ひとまず、インストールCDを持ってきてlinux rescueで起動。linuxはこういうこともできるんだ、助かった・・・。

新しいvmlinuzを認識させる

どうもよく調べると、ブートローダーの設定を更新していなかったため、古いvmlinuzを読み込んだまま起動していたようです。どうりでインストール時のKernelを削除したら起動しなくなったわけだ。
なので、下記参考サイトを参考にしてgrubを更新し、再起動。
――しかし、起動しない(/_;)
起動コマンドラインはgrubの画面からでも更新可能なので、該当の起動コマンドを選択して「e」で編集します。最近の(?)grubはTabキーによりファイル名の補完入力ができるのでそれを元にファイル名を再入力しEnter
――すると、起動(T.T)
どうやら手入力を信用してはいけないということのようです。いろいろ探した結果なんかたいしたことない結果になりましたが・・・ まあ、勉強にはなりましたか(^^ゞ

今後の対策

とりあえず次回カーネルを変更する際は、カーネルのアップデート直後、再起動前に行う。それからパスについては手入力せず、Poderosaからファイル名のコピーで入力するようにしようと思います。いくら慣れっことはいえいちいちサーバにキーボードとモニターを接続して使うというのも面倒ですし。モニターはメインPCのサブモニタにも使ってますからねえ。
キーボード、この間アドエス用に買ったPapillonを使っているんですが・・・、アドエス用というよりいつの間にかサーバメンテナンス用になっちゃったな(^^ゞ

参考サイト

5月5日12時39分追記

元々最近のgrubは、vmlinuz(バージョン表記なし)という最新バージョンのvmlinuzのシンボリックリンクを参照しています。
後で調べてみたらそちらのシンボリックリンクを更新することでも、起動時に読み込むカーネルの更新が可能(と言うか、そっちのほうが本則?)のようです。
しかし、フルパスを指定して「ln -s /boot/vmlinuz...」と書いてはだめで、ちゃんとカレントディレクトリをbootにしてからシンボリックリンクを張らなければいけないようです。
これはOSの起動中にはディレクトリという概念がないので、/boot/vmlinuz...というシンボリックリンクをたどれないからでしょうか。