我的 / 和 /home 都是 btrfs 分区,安装时使用自定义分区分的,安装好后没有进行过改动。今天突然提示不能保存文件,说是没有空间了,我用 df 查看的时候发现才使用了 72% 的空间,总大小是 210G,使用大小是 151G 多,然后就是各种放狗,总算找到了 btrfs 命令的用法,使用
btrfs filesystem show /home
查看是显示如下:
我的问题是 devid 行代表什么?为什么 Total 行显示 used 是 149.84G,devid 行显示是 210G?
(第二块,第一块 /dev/sda2 是跟,/dev/sda3 是 home)
之前有人遇到过这个问题,据说 btrfs 不能用 df 查看,那个是不准的。
系统说没有了,那就是你的硬盘不够大了。也可能你有很多备份文件没有清理。
我也看见说 df 不准的说法了,就是不知道 btrfs 应该用哪个命令来看准确使用容量
btrfs 会在每次根分区改变时(由 zypper 或 yast 触发)创建两个快照,这种快照分别保存改变之前和之后。另一种是独立快照,默认每天创建一个,你也可以设置为每小时自动创建一个, 独立快照刚开始占用空间为 0, 但随着系统改变越大,它占的空间也就越大。关于 btrfs 快照的具体使用可以使用下面的命令查看:
sudo snappper --help
需要注意的是快照是需要经常清理的,否则便会出现你现在遇到的情况。系统默认的快照清理是可以自动清理的,但需要你设置清理规则,另外你也可以手动清理:
查看快照:
sudo snapper list
删除快照:
sudo snapper delete num1 num2 num3
num 指的是快照编号
当然,如果你觉得上边的清理方法太麻烦(快照编号往往是不连续的),你也可以使用我写的一个清理脚本。
脚本说明在这里:forum.suse.org.cn/t/btrfs/2978/2
PS:话说昨天晚上我刚用 Ruby 把那个脚本给重写了一下,添加了点功能,因此建议使用 Ruby 版 ](GitHub - gmg137/bsc at ruby)
1赞
刚发现,你这个系统自动分区怎么没给 home 分成 XFS ???
如果是清理 home 分区的快照,需要用下边的方法:
1、查看快照配置文件
snapper list-configs
这时候应该能看到 root、home 之类的东西.
如果有 home 配置文件,那么就可以进行下一步。
2、清理全部快照
sudo ./bsc -c home -d -a