Clonezilla 将 redhat 安装克隆到较新的硬件后,无法找到文件系统 /dev/root

Clonezilla 将 redhat 安装克隆到较新的硬件后,无法找到文件系统 /dev/root

我正在将一个看似是 redhat 4(可能是 5?)服务器克隆到相当新的硬件上,因为原来的主板出现故障。DBA 不想重新配置新安装,所以他们希望我尽可能进行克隆。我使用了 Clonezilla 稳定版本 2.5.0-25,并通过静态 IP 通过网络执行了第二个选项磁盘到远程磁盘复制。使用了本教程:https://www.youtube.com/watch?v=8UGR_RLCptQ

Redhat 版本信息:

[root@original_server ~]# cat /etc/redhat-release 
redhat-4
#Enterprise Linux Enterprise Linux Server release 5 (Carthage)

旧硬件:Asus RS260/2x Xeon E5420/12gb DDR3 ECC FB RAM(硬件问题之前为 24gb)/ICP ICP5085BL RAID 控制器/RAID 10 8 个驱动器最佳

新硬件:华硕 RS720/2X Xeon 2620/48gb DDR3 ECC FB RAM/华硕 PIKE 2308 RAID 控制器/RAID 10 8 个驱动器最佳

在此过程中,我没有被要求克隆引导加载程序,尽管挂载在 /boot 上的 sda1 分区似乎随后被克隆了。

长话短说,克隆似乎成功了,旧数据位于新服务器上的正确分区中,但是当我尝试启动时,出现了Unable to access resume device (LABEL=SWAP-sda5) and mount: could not find filesystem '/dev/root'错误。然后出现了一些没有此类文件或目录的错误,然后是内核崩溃。

到目前为止我已经尝试过:

  • 使用 CentOS 5.11 64 位 DVD 重建 initrd 并按照以下说明进行操作:https://wiki.centos.org/TipsAndTricks/CreateNewInitrd。当我使用$(uname -r)指定的值时,命令返回“内核“2.6.18-398.el5”没有可用模块”。我使用现有 initrd 文件(2.6.18-8.el5)上的内核版本号重新运行该命令,它成功了。文件大小完全相同。

  • 从华硕网站通过 RPM 安装用于 el5_3 的 LSI Fusion-MPT SAS2 驱动程序以用于 RAID。

  • initrd安装 RAID 控制器后 删除原始文件并重建。initrd文件仅稍微小一些(一个或两个字节)。

  • 从 Gparted 获取 sda1、sda2、sda3、sda6 的 UUID 并/etc/fstab使用它们而不是标签进行修改。

  • 在 grub.conf 中取消注释#boot=/dev/sda并将其修改为boot=/dev/sda1

  • 修改启动顺序中的内核命令(更改rorw,指向root=,,/dev/sda以及/dev/sda3指向UUID=uuid的/dev/sda3),但这些都不起作用。

我还没有尝试过但我知道可以选择以下选项:

  • 重新安装 grub,但我是否要重新安装到/dev/sda1(原来的位置)或/dev/sda?我如何事先备份原始 grub 设置?

  • 从源代码安装 RAID 控制器驱动程序(另一件我不太熟悉的事情)。

  • 运行 fsck:不太熟悉,过去曾使用 -f -y 选项运行它,但显然您想以交互方式运行它以免破坏系统。

我猜是 RAID 驱动程序的问题,但我不知道如何将其包含在 initrd 中。如果有更好的 Linux 系统克隆选项,我愿意接受(我尝试时 Partimage 无法加载,但我可以再次尝试)。已经花了三天时间,所以希望我在提问之前已经尽职尽责。

原始 /etc/fstab:

[root@original_server ~]# cat /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
LABEL=/main             /main                   ext3    defaults        1 2
LABEL=/opt              /opt                    ext3    defaults        1 2
proc                    /proc                   proc    defaults        0 0
sysfs                   /sys                    sysfs   defaults        0 0
LABEL=SWAP-sda5         swap                    swap    defaults        0 0

原始的/boot/grub/grub.conf:

[root@original_server ~]# cat /boot/grub/grub.conf 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Enterprise Linux (2.6.18-8.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-8.el5.img

TLDR:尝试使用 Clonezilla 通过网络将 redhat 4 机器克隆到较新的硬件,但出现无法找到文件系统 /dev/root 的问题。修改了 fstab 和 grub.conf,安装了 RAID 驱动程序,修改了启动选项,并重新创建了 initrd,结果相同。

如果需要,我可以提供截图或更多信息。任何帮助我都会感激不尽,谢谢。

答案1

这里的问题是root=GRUBkernel行中的选项不正确。您需要更新grub.cfg,然后将 GRUB 重新安装到启动设备。

现在,我不确定应该将它安装在哪里。通常它应该安装到实际的磁盘设备,即 ,而/dev/sdx不是分区 ( /dev/sdxN)。但是,如果您将它安装到分区,应该不会出现任何问题。

我不熟悉如何在 Red Hat 中更新现有的 GRUB 安装。我搜索了说明,找到了以下内容:https://unix.stackexchange.com/questions/152222/equivalent-of-update-grub-for-rhel-fedora-centos-systems

相关内容