我有一台装有两个硬盘的 CentOS 6 服务器。我的旧 3TB 驱动器给我带来了一些问题,所以我将事情转移到新驱动器上。因为我的/
和/home
分区由 LVM 管理,所以很容易将它们迁移到新驱动器。现在我想移到我的/boot
分区和 MBR 上,这使它全部启动。
我在我的新驱动器上加载了一张 Live CD 并rsynced
通过我的/boot
分区到相同大小的分区。我还尝试使用以下命令复制我的 MBR:
dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
Run Code Online (Sandbox Code Playgroud)
执行此操作后,我重新启动,告诉我的 BIOS 在启动周期中不要查看旧硬盘驱动器,而只查看新驱动器,但我最终得到的只是一个闪烁的光标。
我在这里错过了一步吗?或者我还需要做些什么来使事情启动,以便我可以完全删除旧驱动器?
编辑:我开始认为 rsync 不是将 /boot 分区从一个驱动器复制到另一个驱动器的方法。根据本指南,我尝试改用 dump 命令。在这个命令中,我将旧的、未安装的引导分区复制到了新的、空的、已安装的引导分区。
dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -)
Run Code Online (Sandbox Code Playgroud)
我在启动时遇到 grub 错误 15,这比闪烁的光标要好,但我不知道这是否更接近解决方案。
事实证明,使用 rsync 或 dump 来复制 /boot 分区是导致问题的原因。根据上面 erick 的回答,我将 Live CD 启动到救援模式并运行以下 dd 命令。
dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
dd if=/dev/sda1 of=/dev/sdb1
Run Code Online (Sandbox Code Playgroud)
我再次运行了前两个 dd,以确保所有内容都被正确复制并且没有被我一直在做的所有测试所破坏。然后我运行第三个 dd 将引导分区从我的旧驱动器复制到我的新驱动器。之后我关闭,拔出我的旧驱动器并启动到我的 CentOS 没有问题。
在已安装的驱动器上使用转储导致副本无法正常工作,一定存在一些问题。无论如何,dd 成功了。谢谢大家的帮助。
如果两个硬盘大小相同(或者新硬盘更大),为什么\xe2\x80\x99 不直接将旧磁盘复制到新磁盘?IE
\n\ndd if=/dev/sda of=/dev/sdb\n
Run Code Online (Sandbox Code Playgroud)\n\n现在,如果新硬盘更大,请使用parted或gparted更改分区大小。所有这一切都是从 Live CD/USB 记忆棒启动完成的。
\n