Fedora 38下重命名Btrfs子卷及解决Timeshift无法识别子卷的求助
Fedora 38下重命名Btrfs子卷及解决Timeshift无法识别子卷的求助
别急,新手操作Btrfs子卷确实需要谨慎,但按下面的步骤一步步来,基本不会搞坏系统,我帮你整理了详细的操作流程:
操作前准备
- 制作一个Fedora 38的Live USB启动盘,因为我们不能在当前运行的系统里重命名正在挂载的根子卷
- 备份好你的重要数据(虽然操作风险低,但以防万一总是没错的)
具体操作步骤
从Live USB启动系统
插入制作好的Live USB,重启电脑并选择从USB启动,进入Live系统(选“Try Fedora”即可,不用安装)挂载Btrfs分区到临时目录
从你提供的信息看,Btrfs分区设备名是/dev/nvme0n1p3,执行命令挂载:sudo mount /dev/nvme0n1p3 /mnt/btrfs重命名Btrfs子卷
注意不要用mv命令,Btrfs子卷有专门的重命名工具,执行以下命令:# 把root子卷重命名为@ sudo btrfs subvolume rename /mnt/btrfs/root /mnt/btrfs/@ # 把home子卷重命名为@home sudo btrfs subvolume rename /mnt/btrfs/home /mnt/btrfs/@home执行完后可以用
sudo btrfs sub list /mnt/btrfs确认子卷名称已经更改更新/etc/fstab配置
现在需要修改系统的fstab文件,更新子卷的挂载参数:sudo nano /mnt/btrfs/@/etc/fstab找到这两行:
UUID=b4af3fb7-bd48-4d59-96c0-0a71385a8fb8 / btrfs subvol=root,compress=zstd:1 0 0 UUID=b4af3fb7-bd48-4d59-96c0-0a71385a8fb8 /home btrfs subvol=home,compress=zstd:1 0 0修改为:
UUID=b4af3fb7-bd48-4d59-96c0-0a71385a8fb8 / btrfs subvol=@,compress=zstd:1 0 0 UUID=b4af3fb7-bd48-4d59-96c0-0a71385a8fb8 /home btrfs subvol=@home,compress=zstd:1 0 0按
Ctrl+O保存,Ctrl+X退出编辑器更新GRUB启动配置
GRUB的启动参数里也记录了子卷路径,需要同步更新:- 先挂载/boot和/boot/efi分区到chroot环境:
# 挂载/boot分区(用你fstab里对应的UUID) sudo mount UUID=52ff126f-6a73-41df-9312-15d2ae1fbf91 /mnt/btrfs/@/boot # 挂载/boot/efi分区 sudo mount UUID=3D19-2F96 /mnt/btrfs/@/boot/efi - 进入chroot环境,模拟在原系统中操作:
sudo chroot /mnt/btrfs/@ - 重新生成GRUB配置文件:
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg - 退出chroot环境:
exit
- 先挂载/boot和/boot/efi分区到chroot环境:
卸载所有挂载并重启
执行以下命令卸载挂载的分区:sudo umount /mnt/btrfs/@/boot/efi sudo umount /mnt/btrfs/@/boot sudo umount /mnt/btrfs然后重启电脑:
reboot
验证与后续操作
重启进入原系统后,执行以下命令验证:
sudo btrfs sub list /:确认子卷名称为@和@homecat /etc/fstab:确认子卷参数已经更新正确- 重新安装Timeshift,此时它应该能正常识别你的Btrfs子卷了
备注:内容来源于stack exchange,提问作者Expie




