あらゆるカーネルアップグレードのための効率的なフォールバックロジック

あらゆるカーネルアップグレードのための効率的なフォールバックロジック

私はUbuntu Linuxシステムの初心者です。このシステムには、以下のように3つのディスクパーティションを持つ1つのハードディスクがあります。

fdisk -l
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Device        Start        End    Sectors   Size Type
/dev/sda1      2048    1050623    1048576   512M EFI System
/dev/sda2   1050624   59643903   58593280    28G Linux filesystem
/dev/sda3  59643904 1953523711 1893879808 903.1G Linux filesystem

2 つの別々のディスク (sda2、sda3) に 2 つのカーネルが存在します。1 つはアクティブ カーネルで、もう 1 つはバックアップ カーネルです。

要件 :アクティブ カーネルを別のバージョンのカーネルにアップグレードして失敗した場合、システムはバックアップ カーネルで起動し、アクティブになるはずです。カーネルのアップグレードが成功した場合は、バックアップ カーネルではなく、アップグレードされたカーネルで起動するはずです。

このシナリオを処理するための効率的なロールバック (またはフォールバック) メカニズムは何でしょうか? また、このシナリオをサポートするには、どのような GRUB 関連の構成が必要ですか。

この問題に対処するための有用なロジックやスクリプトがあれば、教えていただければ幸いです。

関連情報