在 BTRFS 中将根从一个子卷移动到另一个子卷

在 BTRFS 中将根从一个子卷移动到另一个子卷

我想在 BTRFS@root子卷中安装 Ubuntu,但 Ubuntu 安装程序不允许更改默认子卷并安装在@和中@home

我试图@root在安装后创建一个子卷,但遇到了问题。我需要编辑fstabGRUB。GRUB 需要知道在哪里找到新的根目录。我读过社区编辑,/boot/grub/grub.cfg但有些人说这不安全,因为/boot/grub/grub.cfg它会在下一次内核更新或运行时被覆盖update-grub

如何将根从一个子卷移动到另一个子卷?

答案1

如果您知道自己在做什么,那么就不会很复杂。

  1. 从 LiveUSB 启动。

  2. 挂载磁盘/mnt并创建@root子卷。

  3. 使用 将cp -a所有文件从@复制@home@root。您可以使用mv,但在所有文件确定之前保留旧子卷更为安全。

  4. /etc/fstab使用选项更新。如果您不想要单独的,subvol=@root请不要忘记移除支架。(为什么?)/home/home

  5. 使用 将磁盘挂载到例如/mnt-O subvol=@root还可以运行

     sudo mount --bind /dev /mnt/dev
     sudo mount --bind /proc /mnt/proc
     sudo mount --bind /sys  /mnt/sys
    
  6. Chroot/mnt并更新 grub。

相关内容