MENU

openSUSE Tumbleweed スナップショット管理と zypper dup ロールバック設計

目次

ローリングリリースにおけるスナップショット管理の位置づけ

openSUSE Tumbleweedは、数日〜数週間サイクルで新しいパッケージスナップショットがリリースされるローリングリリースディストリビューションです。安定版のLeapとは異なり、カーネル・ライブラリ・ツールチェインが絶え間なく更新されるため、アップデートの失敗リスクと向き合う運用設計が欠かせません。

Tumbleweedがこの問題に対して採用しているアプローチが、BtrfsファイルシステムとSnapperを組み合わせたスナップショット管理です。インストール直後からBtrfsのサブボリュームが構成され、zypper dupの前後でSnapper経由の自動スナップショットが撮影されます。更新が破壊的な変更をもたらしても、スナップショットから以前の状態にロールバックできる仕組みが標準で組み込まれています。

この設計は「更新をためらわなくてよい」という運用文化を支えています。現場でTumbleweedをワークステーションや開発環境に採用するケースが増えているのも、このロールバック設計が前提にあるからです。ただし仕組みを理解せずに運用すると、スナップショットの肥大化や想定外のロールバック失敗に直面することがあります。本記事ではその内部動作から実際の操作まで、ひとつながりで解説します。

zypper dup が推奨される理由と内部の動作

Tumbleweedを更新する際にzypper updateではなくzypper dup(distribution upgrade)を使う理由は、パッケージ解決の戦略の違いにあります。zypper updateは既存パッケージのバージョンを上げるだけですが、zypper dupはリポジトリ全体のスナップショットに整合するよう依存関係を再計算し、不要になったパッケージの削除や別パッケージへの置き換えも実行します。

Tumbleweedのスナップショットは「そのスナップショット時点の全パッケージが整合した状態」として設計されているため、zypper updateによって部分的に更新された環境ではパッケージの整合性が崩れることがあります。公式ドキュメントおよびopenSUSEコミュニティの一貫した推奨はzypper dupの使用です。

実行の流れとしては、まずリポジトリのメタデータ更新(zypper ref相当)が行われ、次に変更計画が表示されます。運用担当者は計画を確認してから実行の可否を判断できます。この確認ステップを省略せず、削除対象のパッケージや大きなカーネル更新が含まれるかを把握してから進める習慣が、トラブル発生時の切り戻し判断を早めます。

Snapper によるスナップショットの確認と手動管理

zypper dupを実行すると、Snapperが自動的に「pre」「post」の2種類のスナップショットを作成します。preはアップデート開始直前、postは完了直後の状態です。この組み合わせがひとつの「更新ペア」として管理されます。

現在のスナップショット一覧を確認するには次のコマンドを使います。

sudo snapper list

出力には番号・種別(pre/post/single)・作成日時・説明が表示されます。zypper dup由来のエントリは説明欄に「zypper」の文字列が含まれるため識別しやすくなっています。

スナップショット間の差分を確認したい場合は以下のように番号を指定します。

sudo snapper diff 42..43

スナップショットはディスクを消費し続けるため、不要になった古いものは削除が必要です。Snapperには自動クリーンアップ設定(NUMBER_CLEANUPTIMELINE_CLEANUP)があり、/etc/snapper/configs/rootで保持数や保持期間を調整できます。デフォルト設定のままにしておくと数か月で数十GBを占有するケースがあるため、運用初期に確認しておくべきポイントです。

手動削除は以下のコマンドで実行します。

sudo snapper delete 40

範囲削除も可能です(例:snapper delete 30-39)。削除する前には必ず最新のスナップショットが存在することを確認し、ロールバック先として使えるスナップショットを最低1世代残しておく設計にします。

zypper dup 後の問題発生時:ロールバック手順

アップデート後にシステムが起動しない、または特定のサービスやGUIが壊れた場合のロールバックには2つの経路があります。

経路1:起動中のシステムからのロールバック

システムが起動できる状態であれば、次のコマンドでロールバックを実行できます。

sudo snapper rollback 42

数字はロールバック先のスナップショット番号(通常はdupのpreスナップショット)です。このコマンドはデフォルトのBtrfsサブボリュームを指定スナップショットの内容に切り替え、再起動後に有効になります。ロールバック後には新たにスナップショット番号が採番され、変更前の状態が記録されます。

経路2:起動メニュー(GRUB)からのロールバック

システムが起動しない場合はGRUBメニューから「Start bootloader from a read-only snapshot」を選択します。過去のスナップショット一覧が表示され、任意の時点で起動できます。この状態で動作確認後、ターミナルからsnapper rollbackを実行することで恒久的なロールバックが完了します。再起動前のこのステップを省略すると、スナップショットから起動しただけで次回の再起動時に元の(壊れた)状態に戻る点に注意が必要です。

ロールバック完了後は、その状態でzypper dupを再試行するか、問題のあるスナップショットが解消される次のTumbleweedスナップショットリリースを待つという判断をします。

運用設計のポイントと注意事項

Tumbleweedのスナップショット運用で見落とされがちな設計上の注意点をまとめます。

  • /homeはスナップショット対象外が基本:デフォルト設定ではホームディレクトリ(@homeサブボリューム)はSnapperの管理対象ではありません。システムロールバックをしてもユーザーデータはそのまま残るため、依存する設定ファイルとシステムライブラリの間でミスマッチが起きることがあります。開発環境では言語ランタイムのバージョンとユーザー設定の整合性に注意が必要です。
  • Btrfsパーティションのディスク使用量監視:スナップショットはBtrfsのCopy-on-Writeを使うため初期コストは低いですが、更新を重ねるにつれ差分データが蓄積します。btrfs filesystem usage /で実際の使用量を定期確認します。
  • tmpfsとBtrfs以外のマウントポイント/tmp/var/tmpはスナップショット対象外のサブボリュームまたはtmpfsであることが多く、ロールバック後も内容が残る場合があります。
  • 更新前のリポジトリ状態確認:OBS(Open Build Service)由来のサードパーティリポジトリがTumbleweedのスナップショットと非同期になっている場合、zypper dupが依存解決に失敗することがあります。zypper lr -dでリポジトリの優先度と有効状態を確認しておくと診断が早まります。

2026年現行環境における差分と注意事項

2026年時点のTumbleweedを取り巻く環境で、2024年以前の情報と異なる点を整理します。

AGAMAインストーラーの標準化:2025年以降のTumbleweedインストーラーはYaSTベースからAGAMAベースに移行が進んでいます。インストール時のBtrfsサブボリューム構成がわずかに変化している場合があるため、古い資料を参照してサブボリューム名を決め打ちにしているスクリプトは動作確認が必要です。

Snapper 0.11系の挙動:Snapper 0.11系ではsnapper listの出力フォーマットが一部変更されており、スクリプトでパースしている場合は出力をそのまま流用できないケースがあります。ツール経由での操作(--machine-readable json等のオプション利用)が安定した自動化の選択肢です。

systemd-boot 採用環境での注意:一部の構成やAGAMAインストールではGRUB2ではなくsystemd-bootが採用される場合があります。systemd-boot環境ではGRUBメニューからのスナップショット起動のインターフェースが異なるため、使用環境のブートローダーを事前に確認しておくことが重要です。現状ではefibootmgrとsystemd-bootのエントリ管理を組み合わせた手動操作が必要になるケースがあります。

openSUSE MicroOS との設計思想の連続性:Tumbleweedの運用経験はコンテナホスト向けのopenSUSE MicroOSやSLEMicroと設計思想を共有しています。アトミックアップデート・ロールバックの考え方はこれらの派生ディストリでさらに発展しており、Tumbleweedでの習熟がイミュータブルインフラへの移行判断にも直結します。

ローリングリリースをリスクとして捉えるのではなく、スナップショット管理を前提とした設計を組み込むことで、最新のパッケージ環境を安全に維持できる運用モデルが成立します。Tumbleweedの価値を引き出すには、zypper dupの実行を習慣化しながら、スナップショットの世代管理とディスク使用量の監視を継続的な運用サイクルに組み入れることが重要です。

「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。

ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。

>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)

※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。

PR・広告

新しいLinuxの教科書 第2版(Amazon)

コマンド操作から基本運用までを手を動かして学べる定番書。記事で触れた技術の土台固めに。

Amazonで見る

※ Amazonのアソシエイトとして、当サイトは適格販売により収入を得ています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次