11
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

カーネルが無くなって起動できなくなったUbuntuに、カーネルをインストールする方法

Ubuntuで間違えてカーネルすべて消してしまうことがたまに起こります。
カーネルを消してしまえば、grubからも起動できません。
そこで、Ubuntuのインストールディスクの機能を使って、カーネルを再インストールします。

環境

今回試す環境はVirtualBox上のUbuntu Server 14.04.3で、apt-getからlinux-imageと名前のつくパッケージすべてを削除した状態です。
また、今回はインストール先のパーティションはlvmになっているので、通常の物理パーテーションのみとは少しだけ違います。

この状態で起動すると、grub上からはMemory testしか、選択できない状態になっています。

ubuntu-crash-2.png

Rescue a broken system

OSが動かない状態では、カーネルを再インストールすることは出来ません。
そこで、Ubuntu Serverのインストールディスクを使用します。

Ubuntu Serverのインストールディスクをブートさせ、言語選択をEnglishにした時、下のような画面になります。

ubuntu-cdboot.png

この画面から、"Rescue a broken system"を選択します。

その後、言語や地域、キーボードのレイアウト、OSの名前などシステムの設定を要求されますので適当に設定します。
ある程度まで設定すると、下のような画面になります。

ubuntu-rescue-deviceselect.png

この画面は、修復したいOSのパーテーションの選択です。今回の環境ではlvmでパーテーションを区切っているので、"/dev/ubuntu-vg/root"を選択します。
選択後に"Mount separate /boot partition?"と聞かれるのでYesを選択。

次に下のような画面が表示されます。

ubuntu-rescue-operations.png

ここで、"Excute a shell in /dev/ubuntu-vg/root"を選択します。
これでOSを動かせる状態になります。

OSの操作

OSを動かせる状態ではありますが、まだカーネルはインストールされていません。
なので、カーネルのパッケージをインストールします。

まず、カーネルをインストールする前にしなければいけないことがあります。
この状態だと、DNSによる名前解決ができません。名前解決が出来ないと、パッケージのインストールは出来ません。
どうやら、/run以下のファイルが生成されていないため、/etc/resolv.confのシンボリックリンク先の/run/resolvconf/resolv.confが存在しない状態になっており、ネームサーバの設定が読み込まれない状態みたいです。

なので、以下のコマンドを打ちます。

$ mkdir /run/resolvconf/
$ echo nameserver 8.8.8.8 > /run/resolvconf/resolv.conf

こうしたことで、名前解決ができるようになりました。

次に、カーネルとlvmのパッケージのインストールをします。
以下のコマンドを打ちます。

$ apt-get update
$ apt-get install linux-image-generic lvm2

以上で、カーネルは見事に復活しました。あとは再起動するだけです。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
11
Help us understand the problem. What are the problem?