14.4. 更新されたオペレーティングシステムからのロールバックの実行
bootc rollback コマンドを使用すると、以前のブートエントリーにロールバックしてシステムの変更を元に戻すことができます。このコマンドは、rollback 対象のデプロイメントを次回の起動のキューに追加することで、ブートローダーエントリーの順序を変更します。現在のデプロイメントはロールバックになります。
キュー内の適用されなかったアップグレードなどのステージングされた変更は、すべて破棄されます。ロールバックの完了後、1 - 3 時間以内に更新タイマーが作動します。これにより、システムは自動的に更新され、ロールバック元のイメージに再起動されます。
ロールバックを実行すると、自動更新をオフにしない限り、システムは自動的に再度更新されます。自動更新の無効化 を参照してください。
たとえば、bootc rollback コマンドを使用してロールバックを実行すると、/etc ディレクトリー内のファイルに加えられた変更は、ロールバックされたデプロイメントには引き継がれません。代わりに、/etc ディレクトリー内のファイルは、以前のデプロイメント時の状態に戻ります。
bootc rollback コマンドは既存のデプロイメントの順序を変更しますが、新しいデプロイメントは作成しません。新しいデプロイメントが作成されると、/etc ディレクトリーがマージされます。
ロールバック後に使用できるように、変更された /etc ファイルを保持するには、/var (特定の <user> の /var/home/<user> など) または root ユーザーの /var/root/ のディレクトリーに /etc の内容をコピーします。これらのディレクトリーにはユーザーコンテンツが保存されるため、ロールバックの影響を受けません。
一時的なロールバックまたは別の bootc ロールバックによって元の状態に戻ると、/etc ディレクトリーは元のデプロイメントの状態に戻ります。
または、ロールバックする問題が /etc ディレクトリー内の設定ファイルに関係していない場合は、bootc switch コマンドを使用して以前のデプロイメントに戻します。このコマンドは、必要な /etc マージを実行し、ソフトウェアの以前のバージョンをデプロイします。
前提条件
- システムの更新を実行した。
手順
以下のコマンドを実行します。
$ bootc rollback [-h|--help] [-V|--version]注記bootc rollbackコマンドはbootc upgradeと同じ効果があります。唯一の違いは、コンテナーイメージが追跡されることです。これにより、ホストの SSH 鍵やホームディレクトリーなど、/etc および /var 内の既存の状態を保持することが可能になります。
検証
systemd journalを使用して、検出されたロールバック呼び出しに関するログに記録されたメッセージを確認します。$ journalctl -b次のようなログが表示されます。
MESSAGE_ID=26f3b1eb24464d12aa5e7b544a6b5468詳細は、システム上の
bootc-rollback(8)の man ページを参照してください。