我的计算机上有两个具有以下配置的驱动器:
Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /
不幸的是,驱动器2似乎正在消亡,因为尝试写入它会给我带来错误,并且检查SMART设置会显示一种悲伤的状态。
我在驱动器1上有足够的空间,所以我想要做的是将/和/ boot分区移动到它,从系统中删除驱动器2,用新驱动器替换驱动器2,然后反转该过程。
我想我需要对grub做一些更新,我需要移动一些东西,但我很困惑如何完全解决这个问题。因为这是我的主要电脑,所以我要小心不要弄乱,所以我无法启动。
我对此的最终解决方案是多种技术的组合:
这一切都运行良好,但我需要按说明更新grub2 这里 。
完成所有这些后,事情似乎有效。
你需要从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中绑定mount/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
第二个命令将提出一个投诉(我忘了它是什么......),但是可以忽略。
通过删除坏驱动器来测试它。如果它不起作用,坏驱动器应该仍然能够启动系统,但我相信这些都是必要的步骤。
如果您立即更换驱动器,您可以使用dd
(几个月前在我的服务器上试过它,它就像一个魅力)。
你也需要一张启动CD。
dd if=/dev/sdb1 of=/media/drive1/backuproot.img
- sdb1是你的根(/
)分区。这会将整个分区保存在文件中。[。_____。]/boot
也一样dd if=/media/drive1/backuproot.img of=/dev/sdb1
- 将其写回。[。_____。]/boot
也一样以上将创建2个分区,其大小与之前完全相同。您可能需要调整grub(检查macos post)。
如果你想调整你的分区大小(就像我一样):
/
和/boot
;可以根据需要调整大小)mount /media/drive1/backuproot.img /media/backuproot/
/
分区:mount /dev/sdb1 /media/sdb1/
cp -R
不会这样做!)cp -R --preserve=all /media/backuproot/* /media/sdb1
/boot/
也一样这应该做到这一点。