如何将启动分区和根分区移动到另一个驱动器

如何将启动分区和根分区移动到另一个驱动器

我的计算机上有两个驱动器,其配置如下:

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

不幸的是,驱动器 2 似乎已经坏了,因为尝试写入它时出现了错误,而检查 SMART 设置则显示了令人沮丧的情况。

我在驱动器 1 上有足够的空间,因此我想要将 / 和 /boot 分区移动到该驱动器,从系统中删除驱动器 2,用新驱动器替换驱动器 2,然后逆转该过程。

我想我需要对 grub 进行一些更新,并且需要移动一些东西,但我对如何进行操作感到困惑。由于这是我的主计算机,所以我要小心,不要弄乱一切,以免无法启动。

答案1

您需要从 Live CD 启动。将分区添加到磁盘 1,复制所有内容,然后使用sudo blkid获取每个分区的 UUID。在磁盘 1 的新 / 上,编辑 /etc/fstab 以使用您刚刚查找的新 UUID。

更新 GRUB 取决于它是 GRUB1 还是 GRUB2。如果是 GRUB1,则需要编辑 /boot/grub/device.map

如果是 GRUB2,我认为您需要按照实际情况挂载分区。例如:

sudo mkdir /media/root
sudo mount /dev/sda1 /media/root
sudo mount /dev/sda2 /media/root/boot
sudo mount /dev/sda3 /media/root/home

(当然,填写您将内容复制到的实际分区)

然后在 /media/root 中绑定挂载 /proc 和 /dev:

sudo mount -B /proc /media/root/proc
sudo mount -B /dev /media/root/dev
sudo mount -B /sys /media/root/sys

现在 chroot 到驱动器,以便您可以强制 GRUB 根据新的布局进行自我更新:

sudo chroot /media/root
sudo update-grub

第二条命令会发出一个抱怨(我忘了它是什么了......),但可以忽略。

通过移除坏驱动器进行测试。如果不行,坏驱动器应该仍然能够启动系统,但我相信这些都是必要的步骤。

答案2

我最终的解决方案是结合多种技术:

  1. 我同时将损坏的驱动器及其替换件连接到计算机。
  2. 新驱动器比旧驱动器小,因此我使用 GParted 缩小了旧驱动器上的分区。
  3. 完成后,我复制了旧驱动器上的分区,并将其粘贴到新驱动器上(也使用 GParted)。
  4. 接下来,我将启动标志添加到新驱动器上的正确分区,因此它实际上就是旧驱动器的镜像。

一切正常,但我需要按照说明更新 grub2这里

完成所有这些之后,事情似乎进展顺利。

答案3

如果您立即更换驱动器,则可以使用它dd(几个月前在我的服务器上尝试过,并且效果很好)。

为此,您还需要一张启动 CD。

  1. 启动CD
  2. 仅安装驱动器 1
  3. 运行dd if=/dev/sdb1 of=/media/drive1/backuproot.img- sdb1 是您的根 ( /) 分区。这会将整个分区保存在一个文件中。
    • 同样/boot
  4. 关机,更换磁盘,开机
  5. 运行dd if=/media/drive1/backuproot.img of=/dev/sdb1—写回。
    • 同样/boot

上述操作将创建 2 个大小与之前完全相同的分区。您可能需要调整 grub(查看 macos 帖子)。

如果您想调整分区大小(就像我一样):

  1. 在新驱动器上创建 2 个分区(分别为//boot;大小随意)
  2. 挂载备份映像:mount /media/drive1/backuproot.img /media/backuproot/
  3. 挂载空/分区:mount /dev/sdb1 /media/sdb1/
  4. 将其内容复制到新分区(我不确定这个命令,保留所有权非常重要,cp -R不会这样做!) cp -R --preserve=all /media/backuproot/* /media/sdb1
    • 同样/boot/

这应该可以。

相关内容