7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntuをアップグレードしたら起動できなくなった時の対処

Posted at

概要

軽い気持ちでUbuntu19.04から19.10にアップグレードした時に、紫の画面から起動が進めなくなってしまいました。
セーフモードで起動すると以下のようなメッセージで起動処理が終わっていて、カーネルの起動でこけていそうでした。

Kernel panic - not syncing : VFS

調査

実際にカーネルが悪いのか確かめるために、カーネルのバージョンを変えて起動してみます。

カーネルを選択

1. マシンを起動する際にShiftを押し続けて、Grubのメニューを表示させる

2. 2番目のAdvanced options for Ubuntuを選択する

IMG_2682.jpg

3. カーネルを選択

今回は上二つの新しいカーネルが悪さをしていると考えたので、3つ目を選択して起動します。
IMG_2683.jpg

そうすると無事起動することができました。

対処

カーネルのバージョンを固定

このままだとデフォルトのカーネルのバージョンが変わっていないので、カーネルのバージョンを固定します。

1. 選択できるカーネル一覧


$ grep menuentry /boot/grub/grub.cfg

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-99eddd62-fe37-404b-a276-916c752c04fb' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-99eddd62-fe37-404b-a276-916c752c04fb' {
	menuentry 'Ubuntu, with Linux 5.3.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.0-29-generic-advanced-99eddd62-fe37-404b-a276-916c752c04fb' {
	menuentry 'Ubuntu, with Linux 5.3.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.0-29-generic-recovery-99eddd62-fe37-404b-a276-916c752c04fb' {
	menuentry 'Ubuntu, with Linux 5.0.0-38-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-38-generic-advanced-99eddd62-fe37-404b-a276-916c752c04fb' {
	menuentry 'Ubuntu, with Linux 5.0.0-38-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-38-generic-recovery-99eddd62-fe37-404b-a276-916c752c04fb' {
	menuentry 'Ubuntu, with Linux 5.0.0-37-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-37-generic-advanced-99eddd62-fe37-404b-a276-916c752c04fb' {
	menuentry 'Ubuntu, with Linux 5.0.0-37-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-37-generic-recovery-99eddd62-fe37-404b-a276-916c752c04fb' {
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {

先ほどのメニューに出ていた6つのカーネルが出力されていることがわかります。

2. カーネルを固定

今回は3つ目のUbuntu, with Linux 5.0.0-38-genericで起動できたので、これに固定します。


$ sudo vim /etc/default/grub

GRUB_DEFAULT="Ubuntu, with Linux 5.0.0-38-generic"

3. 設定ファイルを生成

$ sudo update-grub

Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.3.0-29-generic
Found linux image: /boot/vmlinuz-5.0.0-38-generic
Found initrd image: /boot/initrd.img-5.0.0-38-generic
Warning: Please don't use old title `Ubuntu, with Linux 5.0.0-38-generic' for GRUB_DEFAULT, use `Advanced options for Ubuntu>Ubuntu, with Linux 5.0.0-38-generic' (for versions before 2.00) or `gnulinux-advanced-99eddd62-fe37-404b-a276-916c752c04fb>gnulinux-5.0.0-38-generic-advanced-99eddd62-fe37-404b-a276-916c752c04fb' (for 2.00 or later)
Found linux image: /boot/vmlinuz-5.0.0-37-generic
Found initrd image: /boot/initrd.img-5.0.0-37-generic
Adding boot menu entry for EFI firmware configuration
done

ここで、doneで終わっているので、成功していると思いきや、

Warning: Please don't use old title `Ubuntu, with Linux 5.0.0-38-generic' for GRUB_DEFAULT, use `Advanced options for Ubuntu>Ubuntu, with Linux 5.0.0-38-generic' (for versions before 2.00) or `gnulinux-advanced-99eddd62-fe37-404b-a276-916c752c04fb>gnulinux-5.0.0-38-generic-advanced-99eddd62-fe37-404b-a276-916c752c04fb' (for 2.00 or later)

の部分で、grub2.0以上ではカーネルの設定方法が変わっているよ、というエラーが出ています。この通りに、タイトルで指定するのではなく、オプション名で指定します。


$ sudo vim /etc/default/grub

GRUB_DEFAULT="gnulinux-advanced-99eddd62-fe37-404b-a276-916c752c04fb>gnulinux-5.0.0-38-generic-advanced-99eddd62-fe37-404b-a276-916c752c04fb"

もう一度設定ファイル生成します。

$ sudo update-grub

Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.3.0-29-generic
Found linux image: /boot/vmlinuz-5.0.0-38-generic
Found initrd image: /boot/initrd.img-5.0.0-38-generic
Found linux image: /boot/vmlinuz-5.0.0-37-generic
Found initrd image: /boot/initrd.img-5.0.0-37-generic
Adding boot menu entry for EFI firmware configuration
done

これで起動時のカーネルのバージョンを固定することができました。

参考

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?