カーネルパニック(kernel panic)でUbuntuが起動しない問題
慎重にやれとあれほど言ったのに...
Ubuntuのアップデートと石橋は叩いて渡れ。
愚か者の私が叩かずに渡った結果、カーネルパニック(Kernel panic)が発生しました。
kernel panic not syncing unable to mount root fs on unkonown-block(0,0)
こんな素敵なメッセージがリブート時(電源ON)に表示されました。
今日は、カーネルパニックが起きた時の対処法をサラッとまとます。
カーネルパニックとは
カーネルとは、OSの核となるソフトウェアです。
ハードウェアとアプリケーションを繋ぐ橋渡しのような存在です。
つまり、カーネルがなければハードウェアとアプリケーションを繋ぐものがないので、システムとして機能しなくなります。
異なるカーネルでUbuntuを起動しよう
OSがアップデートされるのと同じように、カーネルはしょっちゅうアップデートされます。
Windowsは基本的にOSなどの更新があれば自動アップデートされますが、Linuxは使用用途などの都合から自動アップデートはされません。(自動アップデートなんかされたらシステム管理者ブチ切れです)
現在、どのバージョンのカーネルを使用しているかは以下のコマンドで確認可能です。
uname -r #4.4.0-79-generic
表示されたのが現在使用中のカーネルで、使用可能なカーネルの一覧は以下のコマンドで確認可能です。
dpkg -l | grep linux-image
ズラズラーッと出てきたら、それらがカーネルたちです。
そして、カーネルパニックを起こしているのは、uname -rで表示された使用中のカーネルです。
そのため、使用可能なカーネルの一覧の中から使用中以外のものを選択して、Ubuntuをリブートすれば、起動します。
その方法は、起動画面で以下の画面に行きます。
通常、「Ubuntu」と表示された部分を選択して、使用中のカーネルでUbuntuをリブートします。
しかし、それがカーネルパニックを起こしているので起動しません。
「Advanced options for Ubuntu」と表示されている部分を選択すると、どのカーネルで起動するかを選択することが出来ます。
ここには基本的には2つ以上のバージョンのカーネルがあるはずです。
Ubuntuでは、最新のカーネルを使っている場合でも1つ前のバージョンのカーネルは削除されません。(意図的に削除しなければ)
そのため、「Advanced options for Ubuntu」の画面を選択してからカーネルパニックを起こしてるカーネル以外を選択して、Ubuntuをリブートします。
これで無事にリブートできます。
トラブルを起こしているカーネルを削除
Ubuntuのリブートは、使用中のカーネルが自動で選択されてリブートされます。
なので、カーネルパニックを起こしているカーネルが選択されるとずーっとリブートできません。
ということで、カーネルパニックを起こしているカーネルを削除します。(リブート時にトラブったカーネルを削除します)
dpkg -l | grep linux-image
これでカーネルパニックを起こしてるカーネルのバージョンを確認します。
sudo apt-get autoremove --purge linux-image-extra-4.4.0-21-generic
linux-image-extra-4.4.0-21-genericがカーネルパニックを起こしていた場合は、これでlinux-image-extra-4.4.0-21-genericを消します。