Linux (old) Newbies

古いWindows環境からLinux環境へと移り住んだ日々の出来事

アップデートでカーネルが変わったら起動不可になった (24.04 LTS 6.14.0-24)

何気なくポチっと更新プログラムで今すぐインストールをしてみたら、やたらと更新量が多くて何だろう思ったけど今までで特にトラブルには遭遇しなかったので気にせず再起動してみたら何やら  BOOT 後に画面が真っ黒状態でした。 NVIDIA のドライバー関連も変わっていた様子だったので相性の悪い組み合わせなのかなぁと起動時にコンソールモードにすべく CTRL + ALT + F1 やら F2 やら推してみても反応が無い。 CTRL + ALT + DEL も無反応。 幸いなことに 別の OS (Windows) とデュアル BOOT 構成にしているので Grub の選択メニューは常時表示だったことから通常起動 OS (ubuntu) のスグ下にアドバンスメニューというのがあって、そこから他の(インストール済みの) カーネルが選べるのが分かって、そこにはカーネルのバージョンが
6.14.0-24
6.11.0-29
6.11.0-28
と、3つでそれぞれにリカバリーモードあり となっていました。

1つ前のカーネルなら難なく起動

Grub のメニューから 6.11.0-29 を選択することで以前と変わらず何事もなく起動できるのを確認。とりあえずは一安心です。

最新のカーネル(6.14.0-24)をリカバリーモードで起動

いろいろな読み込みが始まって起動しようとするのですが途中で止まってしまうようで何だか分からず原因不明です。特に OS のバージョンに拘りはないので原因究明は放棄して 『元に戻す』 方向で作業することに。

このままの状態でも起動時にGrubメニューから アドバンス --> 6.11.0-29 選択とすることで使えますが、毎回選択するとかありえないのでデフォルトの選択カーネルを弄るというのでも出来ますが、その場合だと現状でBootのトップメニューから0番目指定のところを1番目に変更して、さらに階層メニューで2番目の 6.11.0-29 を選ぶということになるので、指定としては現在 0 のところを "1>2" と記述するという何だか不思議な指定方法でした。

/etc/default/grub

GRUB_DEFAULT=0
これを
GRUB_DEFAULT="1>2"
と記述する

まぁそんな小細工で回避してしまうと今後にカーネルがアップデートされても常に2番目を選択起動してしまうので、後で困ることになるのは明白なので選択指定を弄るのは却下で。

最新のカーネルを削除して元に戻す

検索して調べてみると使わなくなった古いカーネルを削除というのは日常のようで沢山の記事が見つかりましたが最新のカーネルを削除して元に戻すというのは稀なのでしょうか・・・。

とりあえず apt から削除してみました

$ apt list --all-versions|grep linux-image-[0-9]|grep generic

linux-image-6.11.0-17-generic/noble-updates,now 6.11.0-17.17~24.04.2 amd64 [設定が残存]
linux-image-6.11.0-19-generic/noble-updates,noble-security,now 6.11.0-19.19~24.04.1 amd64 [設定が残存]
linux-image-6.11.0-21-generic/noble-updates,noble-security,now 6.11.0-21.21~24.04.1+1 amd64 [設定が残存]
linux-image-6.11.0-24-generic/noble-updates,noble-security,now 6.11.0-24.24~24.04.1 amd64 [設定が残存]
linux-image-6.11.0-25-generic/noble-updates,noble-security,now 6.11.0-25.25~24.04.1 amd64 [設定が残存]
linux-image-6.11.0-26-generic/noble-updates,noble-security,now 6.11.0-26.26~24.04.1 amd64 [設定が残存]
linux-image-6.11.0-28-generic/noble-updates,noble-security,now 6.11.0-28.28~24.04.1 amd64 [インストール済み、自動削除可]
linux-image-6.11.0-29-generic/noble-updates,noble-security,now 6.11.0-29.29~24.04.1 amd64 [インストール済み、自動]
linux-image-6.14.0-24-generic/noble-updates,now 6.14.0-24.24~24.04.3 amd64 [インストール済み]

このインストール済みとなっている 6.14.0-24 ですね

$ sudo apt remove linux-image-6.14.0-24-generic
[sudo] xxxxxxxx のパスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  amd64-microcode bpfcc-tools bpftrace ieee-data intel-microcode iucode-tool libbpfcc libclang-cpp18 libclang1-18 libllvm18
  linux-headers-6.11.0-28-generic linux-headers-generic-hwe-24.04 linux-hwe-6.11-headers-6.11.0-28 linux-hwe-6.11-tools-6.11.0-28
  linux-image-6.11.0-28-generic linux-modules-6.11.0-28-generic linux-modules-extra-6.11.0-28-generic
  linux-modules-nvidia-570-6.11.0-28-generic linux-objects-nvidia-570-6.11.0-28-generic linux-signatures-nvidia-6.11.0-28-generic
  linux-tools-6.11.0-28-generic nvidia-firmware-570-570.133.07 python3-bpfcc python3-netaddr thermald ubuntu-kernel-accessories
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
  linux-image-unsigned-6.14.0-24-generic
提案パッケージ:
  linux-hwe-6.14-tools
以下のパッケージは「削除」されます:
  linux-image-6.14.0-24-generic
以下のパッケージが新たにインストールされます:
  linux-image-unsigned-6.14.0-24-generic
アップグレード: 0 個、新規インストール: 1 個、削除: 1 個、保留: 29 個。
15.6 MB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 56.3 kB のディスク容量が消費されます。
続行しますか? [Y/n] y

このあと、Grub の構成が自動で行われるのですが、

Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.14.0-24-generic
Found initrd image: /boot/initrd.img-6.14.0-24-generic
Found linux image: /boot/vmlinuz-6.11.0-29-generic
Found initrd image: /boot/initrd.img-6.11.0-29-generic
Found linux image: /boot/vmlinuz-6.11.0-28-generic
Found initrd image: /boot/initrd.img-6.11.0-28-generic
Found memtest86+x64 image: /boot/memtest86+x64.bin
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Windows NT/2000/XP on /dev/sda1
Adding boot menu entry for UEFI Firmware Settings ...
done

しっかり 6.14.0-24 が残ってしまっていて Grub から消えてくれない・・・
その原因は、どうやら

以下のパッケージが新たにインストールされます:
linux-image-unsigned-6.14.0-24-generic

この削除したら代わりに何か増えちゃったやつらしく、6.14..0-24 に依存する何かが他にあって削除したカーネルの代替に自動で追加されるものらしいです。

じゃ、依存しているのは何だろうと調べることに・・・

$ apt show linux-image-6.14.0-24-generic
Package: linux-image-6.14.0-24-generic
Version: 6.14.0-24.24~24.04.3
Built-Using: linux-hwe-6.14 (= 6.14.0-24.24~24.04.3)
Priority: optional
Section: kernel
Source: linux-signed-hwe-6.14
Origin: Ubuntu
Maintainer: Canonical Kernel Team <kernel-team@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 15.6 MB
Provides: fuse-module, ivtv-modules, kvm-api-4, linux-image, redhat-cluster-modules, spl-dkms, spl-modules, v4l2loopback-dkms, v4l2loopback-modules, virtualbox-guest-modules, zfs-dkms, zfs-modules
Depends: kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-6.14.0-24-generic
Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo, initramfs-tools | linux-initramfs-tool
Suggests: linux-hwe-6.14-tools, linux-headers-6.14.0-24-generic, linux-modules-extra-6.14.0-24-generic
Conflicts: linux-image-unsigned-6.14.0-24-generic
Download-Size: 15.3 MB
APT-Sources: http://jp.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
Description: Signed kernel image generic
 A kernel image for generic.  This version of it is signed with
 Canonical's signing key.

なんかごちゃごちゃと沢山表示される中で Depends: (依存する) の項目ですね。
こいつも消さないとダメらしい --> linux-modules-6.14.0-24-generic

$ sudo apt remove linux-image-6.14.0-24-generic linux-modules-6.14.0-24-generic
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ 'linux-image-6.14.0-24-generic' はインストールされていないため削除もされません
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  amd64-microcode bpfcc-tools bpftrace ieee-data intel-microcode iucode-tool libbpfcc libclang-cpp18 libclang1-18 libllvm18
  libnvidia-cfg1-570 libnvidia-common-570 libnvidia-decode-570 libnvidia-decode-570:i386 libnvidia-egl-wayland1 libnvidia-egl-wayland1:i386
  libnvidia-encode-570 libnvidia-encode-570:i386 libnvidia-extra-570 libnvidia-fbc1-570 libnvidia-fbc1-570:i386 libnvidia-gl-570
  libnvidia-gl-570:i386 libpkgconf3 linux-headers-6.14.0-24-generic linux-headers-generic-hwe-24.04 linux-hwe-6.14-headers-6.14.0-24
  linux-hwe-6.14-tools-6.14.0-24 linux-objects-nvidia-570-6.14.0-24-generic linux-tools-6.14.0-24-generic nvidia-compute-utils-570
  nvidia-firmware-570-570.133.07 nvidia-kernel-source-570 nvidia-prime nvidia-settings nvidia-utils-570 pkg-config pkgconf pkgconf-bin
  python3-bpfcc python3-netaddr screen-resolution-extra thermald ubuntu-kernel-accessories xserver-xorg-video-nvidia-570
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージは「削除」されます:
  linux-image-unsigned-6.14.0-24-generic linux-modules-6.14.0-24-generic linux-modules-extra-6.14.0-24-generic
  linux-modules-nvidia-570-6.14.0-24-generic linux-modules-nvidia-570-generic-hwe-24.04 linux-signatures-nvidia-6.14.0-24-generic
  nvidia-driver-570
アップグレード: 0 個、新規インストール: 0 個、削除: 7 個、保留: 29 個。
この操作後に 175 MB のディスク容量が解放されます。
続行しますか? [Y/n] y

こんどは Grub の対象から6.14.0-24 が消えていました

Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.11.0-29-generic
Found initrd image: /boot/initrd.img-6.11.0-29-generic
Found linux image: /boot/vmlinuz-6.11.0-28-generic
Found initrd image: /boot/initrd.img-6.11.0-28-generic
Found memtest86+x64 image: /boot/memtest86+x64.bin
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Windows NT/2000/XP on /dev/sda1
Adding boot menu entry for UEFI Firmware Settings ...
done
linux-modules-extra-6.14.0-24-generic (6.14.0-24.24~24.04.3) を削除しています ...
linux-modules-6.14.0-24-generic (6.14.0-24.24~24.04.3) を削除しています ...

あとは 6.14.0-24 に関連してインストールされたものを手動で除去

~$ apt list --all-versions|grep linux|grep generic|grep 6.14.0|grep 自動削除
linux-headers-6.14.0-24-generic/noble-updates,now 6.14.0-24.24~24.04.3 amd64 [インストール済み、自動削除可]
linux-headers-generic-hwe-24.04/noble-updates,now 6.14.0-24.24~24.04.3 amd64 [インストール済み、自動削除可]
linux-objects-nvidia-570-6.14.0-24-generic/noble-updates,now 6.14.0-24.24~24.04.3+1 amd64 [インストール済み、自動削除可]
linux-tools-6.14.0-24-generic/noble-updates,now 6.14.0-24.24~24.04.3 amd64 [インストール済み、自動削除可]

 

 

もう、更新アプリの方でアップデートするのはバージョンとか分からないから止めておこうかな・・・

このあと再起動してGrubの自動選択で 6.11.0-29 が問題なく起動するのが確認できました。

しかし Nvidia のドライバーが動作はしているものの手動インストールと判断されて更新アプリの画面からは各バージョン選択をするところが選択不可となって、どうやら何かインストール情報が破損したようなので nvidia ドライバーを apt から reinstall 指定で行ったところ無事に更新アプリからも表示できるように元に戻りました。

今後に再び同様にアップデート後で起動できない状況になっても慌てず対処できそうに思います。