株も歩けば犬に当たる

ブラックSlerで働くSEが株やPythonや思ったことについて書いています。

カーネルパニック(kernel panic)でUbuntuが起動しない問題

慎重にやれとあれほど言ったのに...

Ubuntuのアップデートと石橋は叩いて渡れ。

愚か者の私が叩かずに渡った結果、カーネルパニック(Kernel panic)が発生しました。

kernel panic not syncing unable to mount root fs on unkonown-block(0,0)

こんな素敵なメッセージがリブート時(電源ON)に表示されました。

今日は、カーネルパニックが起きた時の対処法をサラッとまとます。

対処法の流れ

  • 無事にリブートできる

カーネルパニックとは

カーネルとは、OSの核となるソフトウェアです。

ハードウェアとアプリケーションを繋ぐ橋渡しのような存在です。

つまり、カーネルがなければハードウェアとアプリケーションを繋ぐものがないので、システムとして機能しなくなります。

カーネルパニックは、Ubuntuの起動時に何らかの原因でカーネルが起動しなくなってしまうことを指します。

異なるカーネルUbuntuを起動しよう

OSがアップデートされるのと同じように、カーネルはしょっちゅうアップデートされます。

Windowsは基本的にOSなどの更新があれば自動アップデートされますが、Linuxは使用用途などの都合から自動アップデートはされません。(自動アップデートなんかされたらシステム管理者ブチ切れです)

現在、どのバージョンのカーネルを使用しているかは以下のコマンドで確認可能です。

uname -r

#4.4.0-79-generic

表示されたのが現在使用中のカーネルで、使用可能なカーネルの一覧は以下のコマンドで確認可能です。

dpkg -l | grep linux-image

ズラズラーッと出てきたら、それらがカーネルたちです。

そして、カーネルパニックを起こしているのは、uname -rで表示された使用中のカーネルです。

そのため、使用可能なカーネルの一覧の中から使用中以外のものを選択して、Ubuntuをリブートすれば、起動します。

その方法は、起動画面で以下の画面に行きます。

f:id:doz13189:20170709022032j:plain

通常、「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を消します。

カーネルパニックを起こしているカーネルを削除すれば、無事にリブートできるようになるはずです。

まとめ

こういうのが起こるとUbuntuをキライになりそうです。

ただ、復旧のための情報はたくさんネットに落ちているので何とかなるのですが...

とりあえず、今回思ったのはバックアップをとっといてよかったということです。

バックアップをとっているだけで、データは失われないという安心感からとても落ち着いていられます。

カーネルパニックと一緒に自分もパニックになると、焦りから解決できる問題も解決できなくなってしまいますしね。

ふぅ、とりあえず復旧出来てよかったです。