オペレーティングシステム:アーチLinux x86_64
/&/homeの両方を含むBTRFSファイルシステムがあります。 /&/homeのサブボリュームを作成し、各サブボリュームのスナップショットを作成し、そのスナップショットから復元(Live CDからスナップショットを復元)するにはどうすればよいですか?
答え1
/および/homeのサブボリュームの作成
/が現在BTRFSファイルシステムのルートサブボリュームであると仮定すると、まずサブボリュームを作成してからディレクトリをそのサブボリュームに移動する必要があります。
警告する: 今後次のコマンドを使用する場合は、そのコマンドを読んで、どのように動作するかを理解してください。
cd /
btrfs subvol create rootfs
btrfs subvol create homefs
cp -a --reflink=always bin usr root var rootfs/ # This is just a sample of directories to copy. But DON'T copy home.
cp -a --reflink=always home/* homefs/
/etc/fstab
次に、rootfsサブボリュームを使用するように/マウントポイントを編集して変更します。これはオプション(-o)を追加することによって行われますsubvol=rootfs
。次に、/home
homefsサブボリュームを使用するためのマウントポイントを追加します。また、ブートローダに設定されているルートファイルシステムを更新する必要があります。
最後に再起動し、新しいマウントポイントが使用されていることを確認します。すべてが順調に進むと、一時的にルートサブボリューム(/ root / btrfsなどのディレクトリ)をマウントし、コピーした元のディレクトリを削除できます。
スナップショットの作成
個人的には、私はスナップショットを含むサブボリュームを持っています。これにより、スナップショットをマウントできます。/mnt/snapshots
そして、誤って削除したファイルに簡単にアクセスできます。
設定
mkdir /root/btrfs
mount /dev/WHATEVER /root/btrfs
cd /root/btrfs
btrfs subvol create snapshots
読み取り専用スナップショット作成の例
mount /dev/WHATEVER /root/btrfs
cd /root/btrfs
btrfs subvol snapshot -r rootfs snapshots/rootfs-2019-04-11
スナップショットから復元
スナップショットから復元するためにLiveCDは必要ありません。プロセスは非常に簡単です。サブボリュームの名前を変更し、選択したスナップショットから読み取り/書き込みスナップショットを作成します。
rootfsスナップショット復元の例。
mount /dev/WHATEVER /root/btrfs
cd /root/btrfs
mv rootfs rootfs-old # Even though rootfs would be mounted, you can still rename it without affecting the running system.
btrfs subvol snapshot snapshots/rootfs-2019-04-10 rootfs
回復を適用するには再起動してください。