最後のスナップショットをマージするか、最上位レベルをbtrfsのスナップショットに置き換えます

最後のスナップショットをマージするか、最上位レベルをbtrfsのスナップショットに置き換えます

btrfsにルートファイルシステムがあります。snap_before_sidずっと前にスナップショット()を作成しました。私のシステムに問題があり、このスナップショット(btrfs filesystem set-default snap_before_sid)に切り替えました。すべてが大丈夫に見え、うまくいきますが、古いトップレベルサブボリューム(id 5)がどこかにあるため、「空間損失」が心配です。

次の方法はありますか?

  1. または、ID 5サブボリュームを削除しますか?
  2. または、現在のスナップショット(現在のデフォルトサブボリューム)をマージして削除します。
  3. それとも、id5サブボリュームを介して使用されたスペースを消去しますか?

私のfsは次のようになります

btrfs subvolume list  / -a -p 
ID 276 gen 311412 parent 5 top level 5 path <FS_TREE>/snap_before_sid
btrfs subvolume show  -r 5 /
/
    Name:           <FS_TREE>
    UUID:           -
    Parent UUID:        -
    Received UUID:      -
    Creation time:      -
    Subvolume ID:       5
    Generation:         311399
    Gen at creation:    0
    Parent ID:      0
    Top level ID:       0
    Flags:          -
    Snapshot(s):
                snap_before_sid

ベストアンサー1

私は専門家ではありませんBTRFS。数週間使ってきました。また、私はこのケースを理論的に知っていてテストを実行していませんが、あなたの問題についてある程度知っていると言わなければなりません。

  1. または、ID 5サブボリュームを削除しますか?

私が知っているように、BTRFSルートサブボリュームを削除することはできません。

  1. または、現在のスナップショット(現在のデフォルトサブボリューム)をマージして削除します。

私が知っている限り、BTRFSスナップショットをマージする方法はありません。この機能はありません。

しかし:

スナップショットは、他のボリュームと同様に、特定の初期コンテンツを含むサブボリュームです。デフォルトでは、スナップショットは読み取り/書き込みモードで作成されます。スナップショットのファイル変更は、元のサブボリュームのファイルには影響しません。

バラより協会

スナップショットがサブボリュームであり、サブボリュームのすべての機能を持っていることはわかっていますが、見てわかるように、スナップショットというラベルが付けられています。したがって、これはまさにサブボリュームではありません。 :)

デフォルトのサブボリュームを変更して「マージ」します。これは正しいケースの1つです。

別の場合:

編集する: ! ! !警告する! ! !あなたの場合、ルートボリューム(サブボリューム)をマウントすると、スナップショットディレクトリ(またはスナップショットサブボリューム)が表示されることがあります。同期に注意してください。すべてのファイルが削除されることがあります。スナップショットボリュームをスナップショットディレクトリに削除できるかどうかわからないので、ワークステーションで確認しようとしません。 :)スナップショットディレクトリ(またはスナップショットサブボリューム)なしでファイルを同期し、ミラー同期を使用せずにカスタム同期を使用します。

サブボリュームとスナップショットがあります。スナップショットからデータを復元するには、ミラーのようにファイルを同期する同期アプリケーション(rsyncやFreeFileSyncを使用してGUIを好む)を使用できます。この場合、サブボリュームを復元してスナップショットを削除できます。その後、紅茶やコーヒーを飲みに行きます。

スナップショットからのファイルの復元リファレンス協会

ケースを別のケースに変更するには?編集する)

テストしました。ルートボリュームをデフォルト値に復元しました。

btrfs filesystem set-default snap_before_sid [path]あなたも同じことをしますbtrfs filesystem set-default 276 [path]276- あなたのIDsnap_before_sid

それからあなたはそれをすることができますbtrfs filesystem set-default 5 [path]。 5 -<FS_TREE>ルートボリュームのID。

その後、基本ボリュームを確認できますbtrfs subvolume get-default [path]。あなたは答えを得るでしょう - ID 5 (FS_TREE)

BTRFS再度マウントすることを忘れないでください。ルートボリュームが復元されたことがわかります。

ルートボリュームは永久に失われません。ルートボリュームをデフォルト値に復元するまで、ファイルシステムの最上位レベルにアクセスできなくなります。一時的に隠されています。

その後、次に行くことができます。別のケース段階的にプレイしてみてくださいrsync

バラより協会

  1. それとも、id5サブボリュームを介して使用されたスペースを消去しますか?

すみません。わかりません。しかし、私はBTRFSそうできないと思います。

私の答えが役に立ったことを願っています。

おすすめ記事