3.10. bootupd を使用して RHCOS ノード上のブートローダーを更新する
bootupd を使用して RHCOS ノード上のブートローダーを更新するには、RHCOS マシン上で bootupctl update コマンドを手動で実行するか、systemd ユニットを使用してマシン設定を指定する必要があります。
grubby またはその他のブートローダーツールとは異なり、bootupd はカーネル引数を渡すなどのカーネル領域の設定を管理しません。カーネル引数を設定するには、ノードにカーネル引数を追加する を参照してください。
bootupd を使用してブートローダーを更新すると、BootHole 脆弱性から保護できます。
3.10.1. ブートローダーを手動で更新する リンクのコピーリンクがクリップボードにコピーされました!
bootupctl コマンドラインツールを使用して、システムのステータスを手動で検査し、ブートローダーを更新できます。
システムのステータスを検査します。
bootupctl status
# bootupctl statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow x86_64の出力例Component EFI Installed: grub2-efi-x64-1:2.04-31.el8_4.1.x86_64,shim-x64-15-8.el8_1.x86_64 Update: At latest version
Component EFI Installed: grub2-efi-x64-1:2.04-31.el8_4.1.x86_64,shim-x64-15-8.el8_1.x86_64 Update: At latest versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow aarch64の出力例Component EFI Installed: grub2-efi-aa64-1:2.02-99.el8_4.1.aarch64,shim-aa64-15.4-2.el8_1.aarch64 Update: At latest version
Component EFI Installed: grub2-efi-aa64-1:2.02-99.el8_4.1.aarch64,shim-aa64-15.4-2.el8_1.aarch64 Update: At latest versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
最初にバージョン 4.4 以前にインストールされた OpenShift Container Platform クラスターには、明示的な導入フェーズが必要です。
システムのステータスが
Adoptableの場合に、導入を実行します。bootupctl adopt-and-update
# bootupctl adopt-and-updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Updated: grub2-efi-x64-1:2.04-31.el8_4.1.x86_64,shim-x64-15-8.el8_1.x86_64
Updated: grub2-efi-x64-1:2.04-31.el8_4.1.x86_64,shim-x64-15-8.el8_1.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新が利用可能な場合は、更新を適用して、次回の再起動時に変更が有効になるようにします。
bootupctl update
# bootupctl updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Updated: grub2-efi-x64-1:2.04-31.el8_4.1.x86_64,shim-x64-15-8.el8_1.x86_64
Updated: grub2-efi-x64-1:2.04-31.el8_4.1.x86_64,shim-x64-15-8.el8_1.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.10.2. マシン設定を通してブートローダーを自動更新する リンクのコピーリンクがクリップボードにコピーされました!
bootupd を使用してブートローダーを自動更新するもう 1 つの方法は、必要に応じて起動するたびにブートローダーを更新する systemd サービスユニットを作成することです。このユニットは、ブートプロセス中に bootupctl update コマンドを実行し、マシン設定を通してノードにインストールされます。
更新操作が予期せず中断されるとノードが起動不能になる可能性があるため、この設定はデフォルトでは有効になっていません。この設定を有効にする場合は、ブートローダーを更新する間、ブートプロセス中にノードが中断されないように注意してください。通常、ブートローダーの更新操作はすぐに完了するため、リスクは低くなります。
bootupctl-update.servicesystemd ユニットの内容を含む Butane 設定ファイル99-worker-bootupctl-update.buを作成します。注記設定ファイルで指定する Butane のバージョン は、OpenShift Container Platform のバージョンと同じである必要があり、末尾は常に
0です。たとえば、4.16.0です。Butane の詳細は、「Butane を使用したマシン設定の作成」を参照してください。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Butane を使用して、ノードに配信される設定を含む
MachineConfigオブジェクトファイル (99-worker-bootupctl-update.yaml) を生成します。butane 99-worker-bootupctl-update.bu -o 99-worker-bootupctl-update.yaml
$ butane 99-worker-bootupctl-update.bu -o 99-worker-bootupctl-update.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の 2 つの方法のいずれかで設定を適用します。
-
クラスターがまだ起動していない場合は、マニフェストファイルを生成した後に、
MachineConfigオブジェクトファイルを<installation_directory>/openshiftディレクトリーに追加してから、クラスターの作成を続行します。 クラスターがすでに実行中の場合は、ファイルを適用します。
oc apply -f ./99-worker-bootupctl-update.yaml
$ oc apply -f ./99-worker-bootupctl-update.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
クラスターがまだ起動していない場合は、マニフェストファイルを生成した後に、