You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Fedora 38下重命名Btrfs子卷及解决Timeshift无法识别子卷的求助

Fedora 38下重命名Btrfs子卷及解决Timeshift无法识别子卷的求助

别急,新手操作Btrfs子卷确实需要谨慎,但按下面的步骤一步步来,基本不会搞坏系统,我帮你整理了详细的操作流程:

操作前准备

  • 制作一个Fedora 38的Live USB启动盘,因为我们不能在当前运行的系统里重命名正在挂载的根子卷
  • 备份好你的重要数据(虽然操作风险低,但以防万一总是没错的)

具体操作步骤

  1. 从Live USB启动系统
    插入制作好的Live USB,重启电脑并选择从USB启动,进入Live系统(选“Try Fedora”即可,不用安装)

  2. 挂载Btrfs分区到临时目录
    从你提供的信息看,Btrfs分区设备名是/dev/nvme0n1p3,执行命令挂载:

    sudo mount /dev/nvme0n1p3 /mnt/btrfs
    
  3. 重命名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确认子卷名称已经更改

  4. 更新/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退出编辑器

  5. 更新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
      
  6. 卸载所有挂载并重启
    执行以下命令卸载挂载的分区:

    sudo umount /mnt/btrfs/@/boot/efi
    sudo umount /mnt/btrfs/@/boot
    sudo umount /mnt/btrfs
    

    然后重启电脑:

    reboot
    

验证与后续操作

重启进入原系统后,执行以下命令验证:

  • sudo btrfs sub list /:确认子卷名称为@@home
  • cat /etc/fstab:确认子卷参数已经更新正确
  • 重新安装Timeshift,此时它应该能正常识别你的Btrfs子卷了

备注:内容来源于stack exchange,提问作者Expie

火山引擎 最新活动