我有一台 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
完成此操作后,我重新启动,告诉我的 BIOS 在启动周期中不要查看旧硬盘驱动器,而只查看新驱动器,但我最终得到的只是一个闪烁的光标。
我在这里错过了一步吗?或者我还需要做些什么才能启动,以便我可以完全删除旧驱动器?
编辑:我开始认为 rsync 不是将 /boot 分区从一个驱动器复制到另一个驱动器的方法。基于本指南,我尝试使用 dump 命令代替。在此命令中,我将旧的、未安装的引导分区复制到新的、空的、已安装的引导分区。
dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -)
我在启动时收到 grub 错误 15,这比闪烁的光标要好,但我不知道这是否更接近解决方案。
答案1
事实证明,使用 rsync 或 dump 复制 /boot 分区导致了该问题。根据上面埃里克的回答,我将 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
我再次运行了前两个 dd,只是为了确保所有内容都正确复制,并且没有因我所做的所有测试而损坏。然后我运行第三个 dd 将引导分区从旧驱动器复制到新驱动器。之后我关闭,取出旧驱动器并毫无问题地启动到我的 CentOS。
在已安装的驱动器上使用转储肯定会导致某些问题,从而导致副本无法正常工作。无论如何,dd 成功了。谢谢大家的帮助。
答案2
如果两个硬盘大小相同(或者新硬盘更大),为什么不直接将旧硬盘复制到新硬盘呢? IE
dd if=/dev/sda of=/dev/sdb
现在,如果新硬盘更大,请使用parted或gparted更改分区大小。所有这一切都是从 Live CD/USB 记忆棒启动完成的。
答案3
我没有创建 dd,而是创建了一个新卷。更多步骤,但可能会解决问题而不是复制它们。我的 /boot 太小,被损坏了。我也在使用 cento7 和 grub2。因此,我的说明需要进行一些调整或按照 psusi 的建议升级到 grub2。我试着记下这些变化。
注意:当我使用“/dev/sdx”时,我假设您知道“sdx”需要更改为您想要成为 /boot 的磁盘/卷的名称。
- 使用 fdisk(不是 cfdisk)对类型 83(普通 Linux 部分)进行分区,并标记为可启动。
- fdisk 的原因:cfdisk 启动分区太快,没有空间容纳引导加载程序。请记住,引导加载程序需要位于分区之前。
- 在分区上创建文件系统。分机[234],xfs。其他的?。
- 挂载到 /boot
- 将 *.img 文件从旧的 /boot 复制到 /boot…至少是您想要保留的文件。
- 我还将 vmlinuz-* 文件从旧的 /boot 复制到 /boot…不确定是否需要。
- 运行 grub2-install /dev/sdx
- 注 1:如果您使用 grub(而不是 grub2),我相信正确的命令是 grub-install /dev/sdx
- 注意 2:它安装在我们刚刚格式化的分区之前,因此不要将其指向 /dev/sdx1!
- 运行 grub2-mkconfig -o /boot/grub2/grub.cfg
- 注意:如果您使用 grub(而不是 grub2),则情况有所不同。这可能有帮助,但不确定: http://www.linuxandubuntu.com/home/how-to-change-boot-order-set-default-boot-os-in-ubuntu-14-10-15-04-linux-mint-or-other-衍生品
- 不要忘记更新 /boot 的 /etc/fstab
参考: http://www.ocztechnologyforum.com/fo...226#post373226 http://www.patriotmemory.com/forums/...ead.php?t=3696 http://thunk.org/tytso/blog/2009/02/...se-block-size/ https://ubuntuforums.org/showthread.php?t=1528529 https://wiki.centos.org/HowTos/Grub2
答案4
问题是您不应该dd
像这样复制 MBR。您只需在新驱动器上重新安装 grub 即可获得正确地更新了MBR。 MBR 包含 grub 第 2 阶段文件的位置,该位置在您恢复转储时发生更改。
另外,您应该升级到 grub2,因为 grub 旧版本已经多年没有维护,并且 grub2 不需要非 lvm /boot 分区。