[Exchange and share] 真香!记使用btrfs+timeshift秒级自动快照备份 Resolved
Tofloor
poster avatar
LiuYongzhang
deepin
2024-11-13 09:24
Author

先手动分区安装,分区结构如下:

挂载点 文件系统 大小
efi efi 300MB
swap swap 16G
/ btrfs 剩下的全部

1:安装系统并更新升级系统,开启压缩

在终端中运行 sudo nano /etc/fstab

在uuid 这一行 添加compress=zstd:3

zstd:压缩1-15级别,建议3
图片.png

保存退出,然后重新启动电脑

#创建/@子卷(必须,timeshift需要)

sudo btrfs subvolume snapshot / /@

删除/@/home/下的文件

sudo rm -r /@/home/*

#创建@home子卷(必须,timeshift需要)
sudo btrfs subvolume create /@home

#复制/home数据到@home
sudo cp -a /home/* /@home

创建 /mnt/btrfs_temp,-p 避免目录已存在报错
sudo mkdir -p /mnt/btrfs_temp

挂载 @ 子卷
sudo mount /dev/sda3 /mnt/btrfs_temp -o subvol=@

sudo mount /dev/sda3 /mnt/btrfs_temp/home -o subvol=@home

编辑 fstab(核心:确认 / 的 subvol=@,添加 /home 的 subvol=@home)
sudo nano /mnt/btrfs_temp/etc/fstab

直接在原有的 / 上修改,删除subvolid=x字段,将原来的subvol=/改成subvol=@

UUID=xxxx-xxxx-xxxx-xxxx / btrfs subvol=@ 0 0

复制上一条进行修改,将/改成/home ,subvol=@改成@home

UUID=xxxx-xxxx-xxxx-xxxx /home btrfs subvol=@home 0 0

image.png

编辑 grub,追加 rootflags=subvol=@ 到 GRUB_CMDLINE_LINUX_DEFAULT
sudo nano /mnt/btrfs_temp/etc/default/grub

image.png

挂载 EFI 分区(/dev/sda1)到 @ 子卷的 /boot/efi
sudo mount /dev/sda1 /mnt/btrfs_temp/boot/efi

绑定挂载 4 个虚拟文件系统(缺一不可,保证 chroot 环境完整)
sudo mount --bind /proc /mnt/btrfs_temp/proc

sudo mount --bind /sys /mnt/btrfs_temp/sys

sudo mount --bind /dev /mnt/btrfs_temp/dev

sudo mount --bind /run /mnt/btrfs_temp/run

chroot 进入目标系统
sudo chroot /mnt/btrfs_temp

更新 GRUB 配置与重装引导(无需 sudo)

  1. 更新 GRUB 配置(扫描内核,生成新 grub.cfg,需看到 "Found Linux" 无红色报错)

update-grub

  1. 重装 GRUB 到系统硬盘(/dev/sda,仅写硬盘名,不加分区号)

grub-install /dev/sda

  1. UEFI 环境强化验证(确保 EFI 引导项被正确识别)

grub-install --efi-directory=/boot/efi --bootloader-id=grub --recheck

  1. 更新 GRUB 配置(扫描内核,生成新 grub.cfg,需看到 "Found Linux" 无红色报错)

update-grub

  1. 重装 GRUB 到系统硬盘(/dev/sda,仅写硬盘名,不加分区号)

grub-install /dev/sda

  1. UEFI 环境强化验证(确保 EFI 引导项被正确识别)

grub-install --efi-directory=/boot/efi --bootloader-id=grub --recheck

退出 chroot 环境

退出 chroot,回到原系统终端

exit

按「反向挂载顺序」卸载(避免 "设备忙" 报错)

sudo umount /mnt/btrfs_temp/run
sudo umount /mnt/btrfs_temp/dev
sudo umount /mnt/btrfs_temp/sys
sudo umount /mnt/btrfs_temp/proc
sudo umount /mnt/btrfs_temp/boot/efi
sudo umount /mnt/btrfs_temp

重新启动系统

安装timeshift

终端运行 sudo apt install timeshift -y

打开timeshift进行备份

截图_timeshift-gtk_20241113092048.png

截图_timeshift-gtk_20241113092111.png

截图_timeshift-gtk_20241113092126.png

截图_timeshift-gtk_20241113092138.png

截图_timeshift-gtk_20241113092151.png

截图_timeshift-gtk_20241113092209.png

Reply Favorite View the author
All Replies
avatar
babyfengfjx
Super Moderator
CQA
2024-11-13 09:28
#1

这可是非常秀的分享!

Reply View the author
avatar
月阗
deepin
2024-11-13 09:37
#2

like

收藏

Reply View the author
avatar
ThinkYoung
deepin
2024-11-13 09:47
#3

kissing_heart

Reply View the author
avatar
jjcui8595
deepin
2024-11-13 12:24
#4

感谢分享,点赞收藏

Reply View the author
avatar
Tent
deepin
2024-11-13 14:21
#5
Reply View the author
avatar
Tent
deepin
2024-11-13 14:22
#6

我也整理过一个,必须得来秀一下tail

Reply View the author
avatar
131******66
deepin
2024-11-13 16:31
#7

like

感谢分享

Reply View the author
avatar
Oli
deepin
2024-11-13 23:35
#8

like

Reply View the author
avatar
小鱼贝壳
deepin
2024-11-14 06:30
#9

like

Reply View the author
avatar
小小怪冲啊!
deepin
2024-11-14 07:07
#10

like

Reply View the author
avatar
neko
deepin
Ecological co-builder
Q&A Team
2024-11-14 07:14
#11

like

Reply View the author
avatar
Hydrangea_Offcial
deepin
2024-11-15 07:30
#12

like

楼主分享的很棒,我想说说我用arch备份恢复的事情。也用的timeshift备份,但是第一次遇到了点问题。

恢复以后发现启动失败了?最后从网上搜了好久才发现必须删除/etc/fstab里的subvolid=(这个似乎是子卷id,恢复的子卷id和原来的不一样,恢复后导致启动错误)

Reply View the author
avatar
ycscg
deepin
2025-01-07 09:19
#13

看起来不算太难,不过还是繁琐了些,如果在安装deepin的时候只要选择安装在btrfs分区,就自动建个@home子卷并将home装到/@home子卷,自动复制文件,自动修改所有相关配置,这样deepin系统装好后只要安装个timeshift就能用快照,基本就与用ext4装系统没有什么差别了。

Reply View the author
avatar
Jamesjiang
deepin
2025-03-31 11:29
#14

感觉好复杂,不会用

Reply View the author