カーネルのコンパイルに失敗したらしく
仮想マシン上のUbuntu君が起動してくれません。興味本位でカーネルのバージョン:3.16.5をコンパイルして導入してみたんですが・・・。
現状で起動させるにはもともと入っていた3.8.0-29を使わないといけないのですが、GRUBの設定が変わってしまっていて自動的に新しいカーネルでOSを起動しようとします。
ここでイチイチ手動にて古いカーネルを選ぶのも面倒なのでGRUBの設定を変更して、最初から古いカーネルで起動するようにしてみます。
GRUBの設定を変更するには・・・
以前、あまり深く考えすぎない程度にカーネルや起動シーケンスを調べていたときに書いた記事がありまして。
Linuxのカーネルについて(13’12/26)
中身はスカスカの記事ですがなんとなく覚えています(苦笑
これを元にGRUBの設定変更を行ってみました。
まずは/etc/default/grubを編集する
設定ファイルである「/etc/default/grub」をviエディタで開いて編集します。
開いてみると最初の方に「GRUB_DEFAULT=0」という記述があります。たしか起動時の一覧に表示されるものの何番目を使うか?を設定する項目だったはず・・・と思いつつ0→2へ値を変更しました。
0の場合1番上のものを、1で2番目を、2で3番目を使う・・・という設定で、自分の場合古いカーネルが3番目にあったので。
編集した/etc/default/grubに基づいてupdate-grubで起動用設定ファイルを更新
端末から「update-grub」と入力すると、マシン上に存在するカーネルのバージョンを調べつつ、先ほど編集した/etc/default/grubのないように基づいて/boot/grub/grub.cfgというファイルを更新します。
このgrub.cfgの内容にしたがって必要なモジュールやカーネルをメモリ上に読み込んでOSが起動するのだとか。
無事古いカーネルで起動するのか?
上記の設定を施したあと再起動を掛けて、生温かい目で見守ります。すると・・・
お、ちゃんと3行目の古いカーネルにカーソルが乗っている!
しばらく待つと・・・古いカーネル(3.8.0-29)で無事Ubuntuが起動しました。めでたしめでたし。
まとめ
さて、今回は失敗を元に生まれた記事ということになります。ま、かなりの数がそんな内容の記事なんですが。
ではササっと内容を纏めると
- ブートローダ:GRUBの設定を行うことで、起動時に読み込むカーネルを選択できる
- 編集するファイルは/etc/default/grub
- 端末で「update-grub」と入力すると上記のファイルに基づいて/boot/grub/grub.cfgが更新される
- grub.cfgはOS起動時に読み込まれる大変重要なファイル
といったところでしょうか。
カーネルのコンパイルを検討する→失敗することも多々あるでしょうから、GRUBを使った起動設定もすこしずつながら確実に覚えておく必要がありそうです。