子卷呢,可以理解为一个文件系统下面可以“虚拟”出很多文件系统出来。
强烈建议使用btrfs时使用子卷,而不是直接把文件或者系统放到btrfs的根文件系统下。(不然到时要用到一些比如快照这样的真香功能还得把东西倒腾到一个子卷里)
要折腾子卷,首先要把你的btrfs根文件系统挂载起来。(当然一个子卷里面还可以有子卷)
值得一提的是,btrfs有个默认子卷,如果不加挂载参数,直接mount一个btrfs文件系统时挂载出来的是它的默认子卷,而不是根。
所以可以加"subvol=/"参数来挂载根。比如
mount -t btrfs -o subvol=/ /dev/sda1 /mnt
创建子卷
btrfs subvolume create xxxx
子卷不能用rm -rf删除,要
btrfs subvolume delete xxxx
设置默认子卷
btrfs subvolume set-default ID
默认子卷是你mount这个文件系统的时候,就会把这个子卷mount上去,而不是mount根
那么这个子卷的ID怎么得呢?
btrfs subvolume list /mnt(btrfs挂载点)
创建快照
btrfs subvolume snapshot /mnt/subvolume /mnt/snapshotsubvolume
快照不是复制文件,如果不更改文件则几乎不占用空间。
删除原子卷后,快照子卷是不会被删的。
例如,我当前系统安装在/mnt/@子卷下,然后我要捣鼓一些东西
我可以先btrfs subvolume snapshot /mnt/@ /mnt/@backup
创建一个快照
捣鼓完了没问题,可以btrfs subvolume delete /mnt/@backup把快照删了。
如果出问题了,就直接用btrfs subvolume set-default把@backup快照设为默认子卷,然后把/mnt/@这个捣鼓坏的子卷删除即可。删除@不会影响@backup。
Enjoy!
本文地址:https://www.liyanfeng.com/post/136.html(如转载,需注明本原文地址)