階層スナップショットの奇妙な動作

階層スナップショットの奇妙な動作

ドライブを 2 つの btrfs パーティションに分割しました。1 つは としてマウントされ/ (dev/sda1)、もう 1 つは としてマウントされます/home (/dev/sda2)

最初のスナップショットを作成しました/home:

mkdir -p /home/snapshots/mnt
mount -o subvolid=0 /dev/sda2 /home/snapshots/mnt
btrfs subvolume snapshot /home /home/snapshots/mnt/snapshots/init

その後、initスナップショットをデフォルトにしてシステムを再起動しました。initスナップショットをクリーンな状態に保ちたかったので、スナップショットを作成して次のように呼ぶことにしましたcurrent

mount -o subvolid=0 /dev/sda2 /home/snapshots/mnt
btrfs subvolume snapshot /home /home/snapshots/mnt/snapshots/current

動作しましたが、currentデフォルトのサブボリュームを作成してシステムを再起動すると、予期しない結果になることlsに気付きました。/home/snapshots

# ls /home/snapshots 
init mnt
# ls /home/snapshots/init
#

問題は、なぜinitフォルダーが表示されるのかということです。私の直感では、initスナップショットは ID 0 のサブボリュームに作成され、そこからのみ表示されるはずです。

答え1

特定のサブボリュームのスナップショットが作成されると、そこに含まれるすべてのサブボリューム (ファイル ツリーに添付されているという意味で) は空のディレクトリのように扱われます。これが動作の理由です。スナップショットからそれらを削除するだけで、データ損失はありません :)

関連情報