Btrfs 使用指南
安装
不需要单独“安装” Btrfs,因为它已经集成在 Debian 12 的 Linux 内核中了。 虽然内核支持读写,但需要用户态工具来执行创建、压缩、快照等管理操作。
sudo apt update
sudo apt install btrfs-progs为什么推荐安装 btrfs-progs?
- mkfs.btrfs: 创建新的 Btrfs 分区。
- btrfs subvolume: 管理子卷(这是 Btrfs 的精髓)。
- btrfs filesystem show: 查看磁盘空间的真实使用情况(普通的
df -h对 Btrfs 不太准)。 - btrfs scrub: 检查和修复数据错误。
格式化
sudo mkfs.btrfs -L MY_STORAGE -f /dev/sdb1创建卷
临时挂载父卷
mount /dev/sdb1 /mnt/temp_root创建数据子卷
sudo btrfs subvolume create /mnt/temp_root/@data使用 @ 前缀是一种约定俗成的习惯,而非系统层面的强制要求。
卸载临时挂载点
sudo umount /mnt/temp_root@data 子卷挂载
sudo mount -o subvol=@data,compress=zstd /dev/sdb1 /mnt/sd2快照
创建快照存储子卷
sudo btrfs subvolume create /mnt/temp_root/@snapshots创建快照
先临时挂载父卷以便操作快照
sudo mount /dev/sdb1 /mnt/btrfs_admin
sudo btrfs subvolume snapshot /mnt/btrfs_admin/@data /mnt/btrfs_admin/@snapshots/@data_backup_$(date +%Y%m%d)回滚
删除旧子卷(或重命名) 用快照“克隆”一个新的
mv /mnt/tmp/@data /mnt/tmp/@data-old
btrfs subvolume snapshot /mnt/tmp/@snapshots/data-2026-05-03 /mnt/tmp/@data如果快照是只读,自动变成可写子卷
btrfs subvolume delete /mnt/tmp/@data-old删除子卷/快照
btrfs subvolume delete /mnt/btrfs_admin/@snapshots/@data_backup_20260504- rm -rf 挂载点会尝试删除这个目录里的所有文件和子目录,但它不会删除子卷本身,子卷的“结构”仍然存在,只是里面的数据被清空了,子卷元数据仍存在。
- 子卷必须没有被挂载(或者你是在其父文件系统中操作)
- 不能有快照依赖(否则会失败)
查看状态
## 查看子卷列表
sudo btrfs subvolume list /my_data
## 查看磁盘空间利用率(Btrfs 专用)
sudo btrfs filesystem usage /my_data
## 当前挂载详情
mount | grep btrfs更新日志
2026/9/10 16:18
查看所有更新日志
4a047-new article于