「稻草」Strawing

对方拒绝了你的代码并向你抛了一个异常

« 安利一个Linux"真香"文件系统:btrfs (支持透明压缩&快照)Android模拟电源键实现锁屏的方法(在Tasker中实现并供其它App调用,实现一键瞬间锁屏) »

玩转btrfs子卷(subvolume)及快照(snapshot)

(真香第二集
子卷呢,可以理解为一个文件系统下面可以“虚拟”出很多文件系统出来。
强烈建议使用btrfs时使用子卷,而不是直接把文件或者系统放到btrfs的根文件系统下。(不然到时要用到一些比如快照这样的真香功能还得把东西倒腾到一个子卷里)
要折腾子卷,首先要把你的btrfs根文件系统挂载起来。(当然一个子卷里面还可以有子卷)
值得一提的是,btrfs有个默认子卷,如果不加挂载参数,直接mount一个btrfs文件系统时挂载出来的是它的默认子卷,而不是根。
所以可以加"subvol=/"参数来挂载根。比如

mount -t btrfs -o subvol=/ /dev/sda1 /mnt

然后切换到挂载点 cd /mnt
创建子卷

btrfs subvolume create xxxx

(btrfs子卷是以目录的形式存在,比如上面的命令创建后会多出一个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

快照也是一个子卷,上述的内容为,给当前已存在的subvolume子卷创建一个快照子卷,命名为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(如转载,需注明本原文地址)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

搜索

网站分类

最近发表

推广内容

标签(Tags)

最新评论及回复

文章归档

Powered By Z-Blog 1.8 Walle Build 100427 Designed by Han'space

Blog by Yanfeng Lee(liyafe1997)@Daocao .[Archiver].

本博客采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可,转载本站内容即代表您同意了本协议,必须署名-非商业使用-禁止演绎。