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


27

我的计算机上有两个具有以下配置的驱动器:

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

不幸的是,驱动器2似乎快要死了,因为尝试对其进行写操作会给我错误,而检查SMART设置则表明情况很糟糕。

我在驱动器1上有足够的空间,所以我想做的是将/和/ boot分区移动到它,从系统中删除驱动器2,用新的驱动器替换驱动器2,然后反向进行此过程。

我想我需要对grub进行一些更新,并且需要移动一些东西,但是我对如何准确地执行此操作感到困惑。由于这是我的主计算机,因此我要注意不要弄乱事情,以免启动。


这正是我必须要做的。我写了一个博客,其中包含有关如何将根分区/移至/ home的完整说明。
卢卡斯

Answers:


29

您需要从实时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

(当然,填写要复制的实际分区是什么)

然后将/ proc和/ dev绑定到/ media / root中:

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

第二个命令将提出一个投诉(我忘记了这是什么...),但是可以忽略。

通过卸下损坏的驱动器进行测试。如果它不起作用,那么坏的驱动器仍应该能够引导系统,但是我相信这些都是必要的步骤。


3
仅供参考,以供最近查看此内容的任何人查看,这不适用于EFI设置。您需要挂载/media/root/boot/efi,除其他外。
wjandrea

1
我需要sudo grub-install /dev/sdasudo update-grub
William Mortada '16

5

如果您立即更换驱动器,则可以使用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/

这应该做。


事实证明,我要安装的新“ 40GB”驱动器比我当前的“ 40GB”驱动器小。我将它们都连接了,然后启动了liveCD。有没有简单的方法可以将dd从旧版本转换为新版本,并称之为完成交易?
mlissner'9

实际上,我解决了这个问题。太大的分区是ext4分区,因此我启动了liveCD,并使用gparted对其进行了缩小。
mlissner'9

4

我对此的最终解决方案是多种技术的组合:

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

一切都很好,但是我需要按照此处的说明更新grub2 。

完成所有这些操作之后,一切似乎就可以进行了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.