ルートbtrfsファイルシステムにマウントすると、多くのLinuxディストリビューションがデフォルトのサブボリュームにインストールされます。変更しないままにすると、このレイアウトは新しいスナップショットまたはサブボリュームがルートファイルシステム内に作成されるように強制します。これはスナップショット自体が含まれているため非常に混乱します。
/
│─dev
│─home
│─var
│─usr
│─...
└─snapshots
└─snap1
より理解しやすい基本サブボリュームのレイアウトは次のとおりです。
/
├─subvolumes
│ └─root
│ ├─dev
│ ├─home
│ ├─var
│ ├─usr
│ └─...
└─snapshots
└─snap1
livecdから起動せずにこのサブボリュームレイアウトを使用するようにディストリビューションのデフォルトのbtrfsインストールをどのように変更できますか?
ベストアンサー1
必ずしも必要ではありませんが、予期しないデータ損失を防ぐために、シングルユーザー(「回復」)モードでこれらの手順を実行することをお勧めします。
基本サブボリュームに目的のレイアウトを作成します。
mkdir /subvolumes
btrfs subvolume snapshot / /subvolumes/root
mkdir /snapshots
/subvolumes/root
新しいルートファイルシステムになるのでこのステップの後、ファイルシステムを変更しないでください。。
/subvolumes/root/etc/fstab
システムが新しいルートサブボリュームをルートファイルシステムとして使用するように編集します。これを行うには、このsubvol=/subvolumes/root
オプションを含めるように変更する必要があります。
新しいサブボリュームを指すようにgrubを変更できるように、どこかに新しいルートファイルシステムをマウントする必要があります。
mkdir /media/temporary
mount -o subvol=/subvolumes/root /dev/sdXX /media/temporary
cd /media/temporary
mount -o bind /dev dev
mount -o bind /sys sys
mount -o bind /proc proc
mount -o bind /boot boot # only necessary if you have a separate boot partition
chroot .
update-grub
exit
それはすべてです。再起動すると、ルートファイルシステムが新しいサブボリュームになります。成功したら、ディレクトリがあってはいけません/snapshots
。
必要に応じて、デフォルトのサブボリュームの永続マウントポイントを作成できます。
mkdir /media/btrfs/root
mount -o subvolid=0 /dev/sdXX /media/btrfs/root
その後、デフォルトのサブボリュームをマウントできます。
これで、デフォルトのサブボリュームから古いルートファイルシステムの内容を安全に削除できるようになりました。
cd /media/btrfs/root
rm -rf {dev,home,var,...}