答案1
可能还有一段路要走,但只需要做一点工作。那么我们要做什么呢?首先,我们将系统复制到新位置。然后,我们必须对复制的 fstab 进行一些调整,以表示根分区的新位置,我们将 chroot 到复制的系统中来调整启动文件。
先决条件:
- 在 /dev/sda 上未分配的空间中创建一个 ext4 分区
- 将新创建的分区挂载到 /mnt
sudo mount /dev/sda6 /mnt
- 它可能末尾有一个不同的数字,但 gparted 会告诉你 - 获取新分区的 uuid
ls -la /dev/disk/by-uuid/
并记下来
复制文件
使用以下命令将当前内容复制/
到新分区:
sudo rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt
做出必要的修正
- 通过调整新位置上的 fstab
sudo nano /mnt/etc/fstab
并将条目中的 uuid 替换为/
;之后它应该看起来像UUID={UUID-of-the-new-partition} / ext4 errors=remount-ro 0 1
- 将 chroot 所需的目录挂载到 /mnt
for dir in /dev /dev/pts /proc /sys /run; do sudo mount --bind $dir /mnt$dir; done
- 不要忘记 boot/efi
sudo umount /dev/sda1 && sudo mount /dev/sda1 /mnt/boot/efi
- chroot 进入复制的系统
sudo chroot /mnt /bin/bash
- 更新引导加载程序
sudo update-grub
- 输入
exit
退出 chroot - 重启
整理起来
现在,您的 grub 中可能有两个 ubuntu 条目,因此您可能需要尝试它们以查看哪一个代表新位置中的系统。如果它启动正常,并且您已检查一切正常,则可以删除 gparted 中的旧 ubuntu 分区并sudo update-grub
再次运行,这样就只剩下一个 ubuntu。
希望这有帮助