15.04にアップグレードした後、実行中のカーネルに一致するカーネルヘッダーが必要です(別のパッケージ用)。
アップグレードにより、カーネル3.19.0-17がインストールされました。念のため、linux-headers-generic
もインストールしました。次に、Sudo update-grub
を実行して再起動しました。それでも、システムはカーネル3.16.0-31で起動しました(uname -r
で確認)。
掘り下げて調べた結果、GrUBはupdate-grub
で3.19カーネルを認識し、/boot/grub/menu.lst
に追加することもわかりました。ただし、起動時には、GrUBはブートメニューで3.16カーネルまでしか認識しません。 GruBが3.19で起動できるように、これを修正するにはどうすればよいですか?
現在のシステムからの出力は次のとおりです。
Sudo update-grub
は常に次の出力を生成します。
$ Sudo update-grub
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-3.19.0-17-generic
Found kernel: /boot/vmlinuz-3.16.0-31-generic
Found kernel: /boot/vmlinuz-3.13.0-40-generic
Found kernel: /boot/vmlinuz-3.11.0-19-generic
Found kernel: /boot/vmlinuz-3.8.0-35-generic
Found kernel: /boot/memtest86+.bin
Found kernel: /boot/vmlinuz-3.19.0-17-generic
Found kernel: /boot/vmlinuz-3.16.0-31-generic
Found kernel: /boot/vmlinuz-3.13.0-40-generic
Found kernel: /boot/vmlinuz-3.11.0-19-generic
Found kernel: /boot/vmlinuz-3.8.0-35-generic
Found kernel: /boot/memtest86+.bin
Updating /boot/grub/menu.lst ... done
/boot/grub/menu.lst
の実行後にupdate-grub
を開く場合、最初のオプションは次のとおりです。
title Ubuntu 15.04, kernel 3.19.0-17-generic
uuid ac9d0eaf-e090-4c29-8e7b-30e98ed07d29
kernel /boot/vmlinuz-3.19.0-17-generic root=UUID=ac9d0eaf-e090-4c29-8e7b-30e98ed07d29 ro quiet splash
initrd /boot/initrd.img-3.19.0-17-generic
しかし、開催 Shift 起動中に、3.19を選択するオプションはありません(ただし、他のいずれかを選択できます)。起動後、uname -r
は3.16で起動したことを確認します。
$ uname -r
3.16.0-31-generic
3.19カーネルが実際にインストールされていることを示すdpkg -l
から切り取られた出力:
ii linux-headers-3.19.0-17 3.19.0-17.17 all Header files related to Linux kernel version 3.19.0
ii linux-headers-3.19.0-17-generic 3.19.0-17.17 AMD64 Linux kernel headers for version 3.19.0 on 64 bit x86 SMP
ii linux-headers-generic 3.19.0.17.16 AMD64 Generic Linux kernel headers
また、grubとヘッダーのパージ/再インストール、および結果にならなかった他のいくつかのことも試みました。
古いバージョンのGRUB(0.9.7)は、おそらくmenu.lst
を使用して何を表示するかを決定し、新しいバージョンのGRUB(GRUB 2)は代わりにgrub.cfg
を使用します。 GRUBとGRUB 2が混在してインストールされているようです。
grub
パッケージのupdate-grub
を使用すると、menu.lst
ファイルが更新されます。これは、ブートローダーがGRUB 2である場合、事実上何もしません。代わりに、grub2-common
をインストールする必要があります(grub
パッケージをアンインストールする必要があります)。次に、update-grub
(またはupdate-grub2
;両方とも同じこと)を実行すると、代わりにgrub.cfg
ファイルが更新されます。
this answerに基づく回答。