备份实时服务器,迁移到新硬盘(模拟硬盘故障恢复)

备份实时服务器,迁移到新硬盘(模拟硬盘故障恢复)

目标:获取实时系统的图像,传输到新驱动器(从 MBR 到 GPT),将 /boot 与 / 分区分开,而不必经过繁琐的系统重新安装和重新配置。

当前设置:在旧系统(Athlon 64)上运行的 Ubuntu 14.04 服务器 - 在 MBR 160GB 上/dev/sda /dev/sda1 - 77G - / /dev/sda2 - Linux Swap

/dev/sdc 上的 GPT 3.0TB 磁盘:
/dev/sdc1 - 2MB - grub_bios /dev/sdc2 - 700MB - /boot /dev/sdc3 - 344GB - / /dev/sdc4 - 2.0TB - /some_other_data

做过:
#: mount /dev/sdc3 /mnt/tmp; mount /dev/sdc2 /mnt/tmp2
#: cd /; sudo tar cf - --one-file-system --directory=/ --exclude=proc --exclude=sys --exclude=dev/pts --exclude=backups / | ( cd /mnt/tmp; sudo tar xvf - )

然后:
#: mv /mnt/tmp/boot /mnt/tmp2/

修改的/mnt/tmp/etc/fstab:
# <file system> <mount point> <type> <options> <dump> <pass>
#Old root -- UUID=4ed11d31-61ad-435e-908e-3443e802291a / ext4 errors=remount-ro 0 1 UUID=a1870c6a-a3b1-4d04-b65f-ee4e41b9c5b8 / ext4 errors=remount-ro 0 1 UUID=c53ef2f7-9688-4aea-9311-23c44a9ae82c /boot ext2 errors=remount-ro 0 1

然后我将 proc 和 sys 文件系统挂载到 /mnt/tmp 下,并在那里使用 -o bind /dev、/dev/pts 和 /run。然后我 chroot 到 /mnt/tmp,并将 /dev/sdc2 挂载到(新的)/boot。

接下来我: #: grub-install /dev/sdc; update-grub; update-initramfs -u; reboot

在启动时,我选择较大的 GPT 磁盘作为启动盘,grub2 菜单出现,显示正确的安装选项等。--UUID a1870c6a-a3b1-4d04-b65f-ee4e41b9c5b8 设置为 root、part_gpt insmod'ed、ext2 insmod'ed 等。

我继续,内核开始加载,我看到,除其他外,/dev/sda 被轮询,一些 usb 设备被识别,然后它暂停...经过短暂的延迟后,我被告知它找不到 /dev/disk/by-uuid/a1870c6a-a3b1-4d04-b65f-ee4e41b9c5b8 并且我被放到一个 busybox shell 中。

我的 USB 键盘在出现此提示时无法工作,我陷入了困境。

我觉得我缺少了一些非常基本的东西,我将不胜感激这个社区可以提供的任何帮助。

谢谢

答案1

好吧,我并没有得到太多关于我的问题的反馈,但我找到了一个解决方案,并将在这里发布以供后人参考。线索来自本文

我需要向/etc/initramfs-tools/modules
1)添加两个模块sata_nv,以使 GPT 驱动器连接的 SATA 控制器能够工作
2) usbhid,以防我再次被转入 busybox shell。

然后简单地: #: update-initramfs -c -k <kernel version>; reboot; profit

相关内容