btrfs 踩坑记
前言
btrfs 是一个支持写时复制、快照、分卷、透明压缩的文件系统。
开整!
全过程见archlinux 安装记录
本文仅记录不同部分。
硬盘分区并挂载
1 | mkfs.btrfs -L 分区名 /dev/nvme0n1p2 |
然后挂载分区:
1 | mount -o noatime,nodiratime,compress=zstd,subvol=@ /dev/nvme0n1p2 /mnt |
安装必要软件包
这里需要先装 btrfs-progs
包,不然装 linux
内核时会报错。
1 | pacstrap -K /mnt btrfs-progs |
配置系统备份
1 | sudo pacman -S snapper |
修改 /lib/systemd/system/snapper-timeline.timer
,设置创建快照频率
1 | [Timer] |
修改配置文件 /etc/snapper/configs/root
,设置保留的快照数量
1 | TIMELINE_MIN_AGE="3600" |
开启Snapper自动快照和自动清理
1 | sudo systemctl enable --now snapper-timeline.timer |
阻止非root用户访问
1 | sudo chmod 750 /.snapshots |
从快照恢复
用启动盘启动,挂载 btrfs 分区。
1 | mount /dev/nvme0n1p2 /mnt |
把损坏的根子卷挪到别处
1 | mv @ @-backup |
列出所有快照及其创建时间
1 | $ grep -r '<date>' /mnt/@snapshots/*/info.xml |
给快照创建一个可读写副本作为新的根子卷
1 | btrfs subvolume snapshot /mnt/@snapshots/编号/snapshot /mnt/@ |
参考资料
- Title: btrfs 踩坑记
- Author: Berrylium
- Created at : 2024-10-31 17:03:08
- Updated at : 2024-11-04 13:05:03
- Link: https://berrylium0078.github.io/2024/10/31/arch-btrfs/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments