Show Table of Contents
このページには機械翻訳が使用されている場合があります (詳細はこちら)。
14.4. スナップショット間の変更の取り消し
既存の 2 つの Snapper スナップショット間の変更を元に戻すには、
undochange
コマンドを、以下の形式で実行します。1
は最初のスナップショットで、2
は 2 つ目のスナップショットになります。
snapper -c config_name undochange 1..2
重要
undochange
コマンドを使用しても、Snapper ボリュームは元の状態に戻らず、データの整合性は維持されません。指定範囲外で行われるファイルの編集 (例: スナップショット 2 以降) は、スナップショット 1 の状態に戻されても変更しません。たとえば、undochange
を実行してユーザーが作成したものを元に戻す場合、そのユーザーが所有するファイルはそのままの状態を維持できます。
また、スナップショットの作成時にファイルの整合性を保証するメカニズムはないため、
undochange
コマンドを使用すると、すでに存在する不整合がスナップショットに戻される可能性があります。
undochange
コマンドは失敗する可能性が高いため、ルートファイルシステムには Snapper の undochange
コマンドを使用しないでください。
以下の図は、
undochange
コマンドの仕組みを表しています。

図14.1 時間経過後の Snapper の状態
上記の図では、
snapshot_1
が作成されてから、file_a
が作成され、file_b
が削除されています。その後 Snapshot_2
が作成されてから、file_a
が編集され、file_c
が作成されています。これがシステムの現在の状態です。現在のシステムには編集後の file_a
があり、file_b
はなく、新規作成された file_c
があります。
undochange
コマンドが呼び出されると、最初のスナップショットと 2 つ目のスナップショットの間に編集されたファイルのリストが生成されます。この図の状態で、snapper -c SnapperExample undochange 1..2
コマンドを実行すると、編集されたファイルのリスト (file_a
が作成され、file_b
が削除されてます) が作成され、現在のシステムに適用されます。したがって、以下のようになります。
- 現在のシステムには
file_a
がありません。snapshot_1
が作成されてから作成されたからです。 file_b
は、snapshot_1
から、現在のシステムにコピーされます。- 指定期間外に作成されたため、
file_c
は存在します。
file_b
と file_c
が競合すると、システムが破損する可能性があります。
また、
snapper -c SnapperExample undochange 2..1
コマンドを使用することも可能です。この場合、現在のシステムにある file_a
が、snapshot_1
のものに置き換わるため、snapshot_2
を作成した後に加えられた変更内容は元に戻ります。
mount および unmount コマンドを使用した変更の取り消し
undochange
コマンドが、変更を元に戻す最適な方法ではないことがあります。status
コマンドと diff
コマンドを併用して、適切な判断を行ってください。さらには、Snapper ではなく、mount
コマンドと unmount
コマンドを使用します。mount
コマンドと unmount
コマンドは、Snapper ワークフロー外のコンテンツを閲覧する場合に限り便利です。
必要に応じて、
mount
コマンドで、マウント前に対応する LVM Snapper スナップショットをアクティベートします。スナップショットをマウントし、古いバージョンのファイルを複数抽出する場合は、mount
コマンドおよび unmount
コマンドを使用します。ファイルを元に戻す場合は、マウントしているスナップショットから現在のファイルシステムにコピーします。現在のファイルシステムであるスナップショット 0 は、 手順14.1「Snapper 設定ファイルの作成」 から作成したライブファイルシステムです。このファイルを、元の /mount-point のサブツリーにコピーします。
明示的なクライアント側のリクエストには、
mount
コマンドおよび unmount
コマンドを使用します。/etc/snapper/configs/config_name
ファイルには、ユーザーおよびグループを追加できる ALLOW_USERS= 変数および ALLOW_GROUPS= 変数が含まれます。snapperd
を使用すると、追加されたユーザーおよびグループのマウント操作を実行できます。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。