将 /boot 和 MBR 移动到新驱动器

将 /boot 和 MBR 移动到新驱动器

我有一台 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
  • 不要忘记更新 /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 分区。

相关内容