Pop OS 20.04でデフォルトブートカーネルを変更する方法

Pop OS 20.04でデフォルトブートカーネルを変更する方法

私は使う人気のあるオペレーティングシステム20.04最近のカーネルのアップグレードにはいくつかの問題が発生し、以前のカーネルバージョンに戻す必要がありました。 (より具体的には、カーネルがアップグレードされ、以前のバージョンのElasticSearchの問題のためにv5.16戻す必要がありました)。v5.15

ご存知のように、Pop OSはsystemd-boot。すべてが再びうまく機能していました。数日前まで、システムがカーネルv5.16で起動することがわかりました! systemdブートメニューを再確認しましたが、まだ古いカーネルオプションでブートするように設定されています!私の考えでは、古いカーネルオプションがアップグレードされてv5.16に切り替えられたようですが、これは望ましくありません!

残念ながら、状況を過度に単純化したいとgrub思われ、systemd-boot比較できる明示的なカーネルバージョンを表示しません!

だから私はデフォルトのブートカーネルを変更するための別のオプションを検索しましたが、私が見つけたのは次のとおりです。この記事。したがって、次のコマンドを使用してデフォルトのカーネルオプションを変更します。

me@pop-os:~$ sudo kernelstub -v -l -k /boot/vmlinuz-5.15.23-76051523-generic -i /boot/initrd.img-5.15.23-76051523-generic
kernelstub.Config    : INFO     Looking for configuration...
kernelstub           : INFO     System information: 

    OS:..................Pop!_OS 20.04
    Root partition:....../dev/sda3
    ESP Path:............/boot/efi
    ESP Partition:......./dev/sda1
    ESP Partition #:.....1
    NVRAM entry #:.......-1
    Boot Variable #:.....0000
    Kernel Boot Options:.quiet loglevel=0 systemd.show_status=false splash
    Kernel Image Path:.../boot/vmlinuz-5.15.23-76051523-generic
    Initrd Image Path:.../boot/initrd.img-5.15.23-76051523-generic
    Force-overwrite:.....False

kernelstub.Installer : INFO     Copying Kernel into ESP
kernelstub.Installer : INFO     Copying initrd.img into ESP
kernelstub.Installer : INFO     Setting up loader.conf configuration
kernelstub.Installer : INFO     Making entry file for Pop!_OS
kernelstub.Installer : INFO     Backing up old kernel
kernelstub.Installer : INFO     Making entry file for Pop!_OS

me@pop-os:~$ echo $?
0

上記のように、コマンドは正常に実行され、終了コードが表示されますが、0適用されません。出力をもう一度確認してみると、kernelstubまだ以前と同じです!

me@pop-os:~$ sudo kernelstub -p
kernelstub.Config    : INFO     Looking for configuration...
kernelstub           : INFO     System information: 

    OS:..................Pop!_OS 20.04
    Root partition:....../dev/sda3
    ESP Path:............/boot/efi
    ESP Partition:......./dev/sda1
    ESP Partition #:.....1
    NVRAM entry #:.......-1
    Boot Variable #:.....0000
    Kernel Boot Options:.quiet loglevel=0 systemd.show_status=false splash
    Kernel Image Path:.../boot/vmlinuz-5.17.5-76051705-generic
    Initrd Image Path:.../boot/initrd.img-5.17.5-76051705-generic
    Force-overwrite:.....False

kernelstub           : INFO     Configuration details: 

   ESP Location:................../boot/efi
   Management Mode:...............True
   Install Loader configuration:..True
   Configuration version:.........3

私のシステムにインストールしたカーネルは次のとおりです。

me@pop-os:~$ dpkg --list | grep linux-image | grep ii
ii  linux-image-5.15.23-76051523-generic  Linux kernel image for version 5.15.23 on 64 bit x86 SMP
ii  linux-image-5.16.19-76051619-generic  Linux kernel image for version 5.16.19 on 64 bit x86 SMP
ii  linux-image-5.17.5-76051705-generic   Linux kernel image for version 5.17.5 on 64 bit x86 SMP
ii  linux-image-generic                   Generic Linux kernel image

修正する:@telcoMの答えに基づいて、出力は次のようになりますbootctl list

me@pop-os:~$ sudo bootctl list
Boot Loader Entries:
        title: Pop!_OS (Pop_OS-current.conf)
           id: Pop_OS-current.conf
       source: /boot/efi/loader/entries/Pop_OS-current.conf
        linux: /EFI/Pop_OS-4574dd5b-40ad-462f-bfbe-22676dd09bdc/vmlinuz.efi
       initrd: /EFI/Pop_OS-4574dd5b-40ad-462f-bfbe-22676dd09bdc/initrd.img
      options: root=UUID=4574dd5b-40ad-462f-bfbe-22676dd09bdc ro quiet loglevel=0 systemd.show_status=false splash

        title: Pop!_OS (Pop_OS-oldkern.conf) (default)
           id: Pop_OS-oldkern.conf
       source: /boot/efi/loader/entries/Pop_OS-oldkern.conf
        linux: /EFI/Pop_OS-4574dd5b-40ad-462f-bfbe-22676dd09bdc/vmlinuz-previous.efi
       initrd: /EFI/Pop_OS-4574dd5b-40ad-462f-bfbe-22676dd09bdc/initrd.img-previous
      options: root=UUID=4574dd5b-40ad-462f-bfbe-22676dd09bdc ro quiet loglevel=0 systemd.show_status=false splash

        title: Pop!_OS recovery
           id: Recovery-9D1B-C521.conf
       source: /boot/efi/loader/entries/Recovery-9D1B-C521.conf
        linux: /EFI/Recovery-9D1B-C521/vmlinuz.efi
       initrd: /EFI/Recovery-9D1B-C521/initrd.gz
      options: boot=casper hostname=recovery userfullname=Recovery username=recovery live-media-path=/casper-9D1B-C521 live-media=>

        title: Reboot Into Firmware Interface
           id: auto-reboot-to-firmware-setup
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

ご覧のとおり、デフォルトのブートカーネルはこのold-kernelオプションに設定されていますが、明示的なカーネルバージョンを指定しないと、以前のカーネルと現在のカーネルのバージョンがわかりません。しかし、私が見ている行動に基づいて推測することはできold = 5.16ますcurrent = 5.17

この問題をどのように解決できますか?デフォルトのブートカーネルをv5.15に設定し、絶対に変更したくないとします。

ベストアンサー1

まず、システムがカーネル5にアップデートされました。番号17.5、5.16.19は今すぐold-kernel出力を表示しますsudo bootctl list

私はPop OSを直接使用していませんが、私が理解したところによると、デフォルトの起動項目を設定するコマンドはであり、systemd-boot利用bootctl set-default可能な開始項目を表示するコマンドはですbootctl list

私が正しく理解したと仮定すると、kernelstubコマンドは各コアの詳細のみを管理し、正しいコアを指定しない限り、デフォルトでは最新のコアで実行されます。

あなたのkernelstub -v -l ...コマンドは明らかに機能するので、Pop OSの3番目のエントリが必要ですbootctl list。ここで、5.15カーネルは5.16で最初にソケットにプッシュされ、old-kernel5.17(?)の導入とともにリストから完全に削除されました。したがって、正しい方向に進んでいますが、さらにいくつかのステップを実行してください。

sudo bootctl listとを使用すると、sudo bootctl set-default5.15カーネルをデフォルトの起動オプションに復元できます。


その後、古いElasticSearchに固執する必要がある限り、新しいカーネルパッケージが到着しないようにする必要があります。パッケージマネージャを設定する必要があります捕まえる~のためカーネルメタパッケージ最新のカーネルパッケージを依存関係として使用してください。新しいカーネルイメージパッケージのインストールをトリガするのは、メタパッケージのアップグレードです。

Debian では、linux-image-amd64最も高いレベルがlinux-image-generic仮想パッケージです。 Pop OS Builderは構造を単純化しているようで、あなたの場合、メタパッケージはそのlinux-image-generic逆のようです。

GUIパッケージマネージャを使用して予約を設定することもできますが、コマンドラインでは次のようになります。

sudo apt-mark hold linux-image-generic

または

echo "linux-image-generic hold" | sudo dpkg --set-selections 

既存のパッケージ予約を表示するには:

dpkg --get-selections | grep "\<hold$"

または

apt-mark showhold

最後に、ElasticSearchをアップグレードしたり、5.15カーネルとの整合性を維持したりするために、要件から逸脱する可能性があります。この時点でカーネルを再更新できるように予約を削除する必要があります。

sudo apt-mark unhold linux-image-generic

または

echo "linux-image-generic install" | sudo dpkg --set-selections

おすすめ記事