Ubuntu 24.04 下 Timeshift 无法运行:子卷 @ 不存在
Ubuntu 24.04 下 Timeshift 无法运行:子卷 @ 不存在
嗨,我之前帮朋友处理过一模一样的问题——Ubuntu 24.04 默认确实不再像 22.04 那样自动创建 @ 和 @home 子卷了,导致依赖这个结构的 Timeshift 直接罢工。给你两个靠谱的解决方案,按需选择:
方案一:修改 Timeshift 配置适配现有结构(快速解决)
这个方法不用动系统分区结构,直接让 Timeshift 适配当前的根目录:
- 先打开终端,输入
sudo timeshift-gtk启动 Timeshift(如果图形界面打不开,就用命令行版sudo timeshift-cli) - 进入「Settings」(设置)页面,切换到「BTRFS」标签页
- 在「Root Subvolume」选项里,选择当前系统根分区对应的顶级子卷(可以先在终端用
sudo btrfs subvolume list /查看,输出里标记为path /的那个就是) - 如果没有单独的
@home子卷,把「Home Subvolume」选项留空或者取消勾选相关设置 - 保存配置后,再尝试创建快照,应该就能正常工作了
要是图形界面操作有问题,也可以直接编辑配置文件:
- 打开终端,输入
sudo nano /etc/timeshift.json - 找到
"btrfs_root_subvolume"这一行,把它的值改成"/" - 如果有
"btrfs_home_subvolume"这一行,把值改成""或者直接注释掉(在行前加//) - 按
Ctrl+O保存,Ctrl+X退出,然后重启 Timeshift 就行
方案二:手动创建 @ 和 @home 子卷(规范持久方案)
如果想让系统结构更贴合传统 BTRFS 布局,方便后续其他工具兼容,推荐这个方法,但需要用 Ubuntu 安装盘进入 Live 环境操作:
- 制作好 Ubuntu 24.04 安装U盘,从U盘启动进入「Try Ubuntu」模式
- 打开终端,先找到你的系统分区:输入
sudo fdisk -l查看,通常是/dev/sda2或者类似的 BTRFS 分区 - 挂载分区到
/mnt:sudo mount /dev/sdXn /mnt(把sdXn换成你的实际分区) - 创建
@和@home子卷:sudo btrfs subvolume create /mnt/@ sudo btrfs subvolume create /mnt/@home - 把现有系统文件复制到
@子卷(用rsync保留权限和属性):sudo rsync -aAXv /mnt/ /mnt/@/ --exclude=@ --exclude=@home - 把
home目录的内容复制到@home子卷:sudo rsync -aAXv /mnt/home/ /mnt/@home/ - 卸载当前挂载:
sudo umount /mnt - 重新挂载
@子卷到/mnt:sudo mount -o subvol=@ /dev/sdXn /mnt - 创建
home挂载点并挂载@home:sudo mkdir /mnt/home && sudo mount -o subvol=@home /dev/sdXn /mnt/home - 更新
fstab文件,确保开机自动挂载子卷:- 输入
sudo nano /mnt/etc/fstab - 找到根分区的挂载行,把
subvol=/改成subvol=@ - 添加一行
@home的挂载配置(推荐用UUID更稳定,先通过sudo blkid /dev/sdXn查UUID):UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxx /home btrfs defaults,subvol=@home 0 2
- 输入
- 更新GRUB引导:
这里的sudo grub-install --root-directory=/mnt /dev/sdX sudo update-grubsdX是你的硬盘(比如/dev/sda,不要加分区号) - 重启系统,现在系统会从
@子卷启动,打开Timeshift就能正常创建快照了
注意:操作前一定要备份好重要数据,避免复制过程中出现意外导致数据丢失!
备注:内容来源于stack exchange,提问作者Majal
相关产品推荐
相关产品推荐

