btrfsの個々のファイルまたはフォルダの復元/ロールバック

btrfsの個々のファイルまたはフォルダの復元/ロールバック

NASシステムにbtrfsを使用する予定です。

これで、ファイル/フォルダレベルでコンテンツをスナップショットにロールバックすることが可能かどうか疑問に思います。通常、ドライブの残りの状態を維持しながら単一の項目だけをロールバックしたいので、この質問をします。

これを行うための基本的な方法はありますか?それ以外の場合、これを達成するための最善の方法は何ですか?私は読んだ完全コピーを実行せずにbtrfsスナップショットから個々のファイルを復元します。このような方法のようですが、それほど便利ではありません。しかし、これはおそらく最善のアプローチです。

ベストアンサー1

スナップショットを撮ると、デフォルトでプライマリボリュームのディレクトリ構造内からアクセスできるサブボリュームが作成されます。適切な権限がある場合は、ここでそのファイルを参照してファイルまたはフォルダをコピーできます。--reflinkコピーオプションは不要なようですが、コピーするときに重複がないようにすればより良いようです。

btrfsツールの使用

(オプション)スナップショット用のサブボリュームを作成します。

btrfs subvolume create .my_snapshots

スナップショットを作成します。

btrfs subvolume snapshot -r /mnt_point /mnt_point/.my_snapshots/snapshot1

-rスナップショットを読み取り専用にするには、このフラグを使用します(https://wiki.archlinux.org/index.php/btrfs#Snapshots)。

サブボリュームを最初に作成して読み取り専用にしないと、次のようになります。

btrfs subvolume snapshot /mnt_point /mnt_point/snapshot1

その後、スナップショットからファイルまたはフォルダをコピーして復元できます。

cp /mnt_point/.my_snapshots/snapshot1/sub/dir/file /sub/dir/file

(からhttps://lore.kernel.org/linux-btrfs/[Eメール保護]/t/#m16db5d9f29d26f41a8adb4499ffe3e220a85d9b8)

外部ツール(スナッパーを例にとる)

Snapperなどの外部ツールを使用すると、スナップショット操作をより便利にし、便利な機能を提供できるため、いくつかの利点があります。

まず、スナップショットを作成したい(サブ)ボリュームの設定ファイルを作成する必要があります。

snapper -c config-name create-config /mnt_point

これにより、というファイルが生成されますconfig-name。これは、自動時間ベースのスナップショットと、一部のロジック以降のスナップショットをクリーンアップするルールを作成することもできることに注意してください。これらのルールは手動で作成されたスナップショットを削除しません。

その後、次のコマンドを使用して手動でスナップショットを作成できます。

snapper -c config-name create --description description-content

config-name以前に作成された構成の名前はどこにあり、description-contentスナップショットの説明を入力できます。

(からhttps://wiki.archlinux.org/index.php/Snapper)

その後、回復は上記のbtrfsツールセクションと同様に機能し、マウントされたスナップショットにアクセスしてコンテンツをコピーします。

また、snapperには、現在のボリュームの変更を元に戻すために使用できるコマンドもあります。オープン水税文書。ただし、これによりデータが一貫していない可能性があることに注意してください。しかもRed Hat ドキュメントこれは、ルートファイルシステムでこのコマンドを使用しないという免責事項です。

理論的には、ファイルは次の方法で回復できます。

 snapper -c config-name -v undochange SNAPSHOT_ID..0 FILENAME

ここではSNAPSHOT_ID、復元するスナップショットのID(および..0復元するファイルをプライマリボリュームとして指定)、および復元するFILENAMEファイルのパスです。複数のファイルを指定することもできます。

(からhttps://doc.opensuse.org/documentation/leap/archive/15.0/reference/html/book.opensuse.reference/cha.snapper.html#proc.snapper.restore.cmdl)

おすすめ記事