我在CentOS 6上运行了一个失败的系统,想尝试恢复系统。
其中一个问题是mdadm超级块出现了一些问题,它具有各种不一致的信息,似乎被某种方式覆盖。 我得到的元数据显示,他们是版本1.0和1.1。 我敢肯定,所有raid卷应该使用1.2版本。 这发生在所有的硬盘驱动器上,所以我不能简单地拿一个工作。
我设法安装这些卷,并通过简单地执行“cp”命令并将其复制到另一个硬盘上。 新的硬盘将有新的UUID,所以我将不得不重做一些configuration文件。
想到什么变化是以下文件:
- /etc/mdadm.conf
- / etc / fstab文件
- grubconfiguration(grub-install可能可以完成这个工作,需要尝试一下)
- 初始RAM磁盘需要重新编译,以了解更改
- 重新生成blkid.tab
有没有其他的改变,我需要做一个可启动的系统? 谢谢。
系统有mdadm superblock以某种方式覆盖,导致系统有不一致的元数据和无法启动。 GRUB的一些部分也必须在这个过程中被覆盖,或者加载必要的启动文件的信息不再指向一个有效的位置。
尝试通过恢复光盘恢复GRUB,但以“Grub文件系统types未知分区types0xfd”和“无法findGRUB.conf”失败。 这可能是由于GRUB Stage 1.5数据可能被覆盖,或者GRUB Stage 1不再指向正确的位置来检索mdadm raid驱动程序(我想知道是否有办法将文件系统驱动程序传递给GRUB,如果您知道方式,请加评论)。
通过执行以下操作将系统移植到另一台机器上:
修复启动分区:
- 全新的系统安装在单独的硬盘上(如果需要,RAID)
- 重新启动系统,运行CentOS救援磁盘并挂载新旧系统(例如/ mnt / old_sys和/ mnt / new_sys)
- 将之前系统中的所有/ boot内容(/ boot / grub文件夹除外)复制到新系统的/ boot分区,以确保所有权限都被保留。 重要的是不要对GRUB文件夹做任何事情,GRUB第一阶段可能会有指向必要文件第1.5阶段或第2阶段的指针(需要彻底testing这个,但是为了安全起见,不要对GRUB做任何事情夹。)
- 编辑新的grub.conf文件,根据您的要求进行更新。
- 重新创build刚刚复制的内核的initram磁盘(您需要挂载/ dev,/ proc,/ sys并将这些分区绑定到新系统的各个分区上。)将chroot插入新的系统映像和mkinitrd。
其余的系统数据
- 从新安装中制作/ etc / fstab和/etc/mdadm.conf的副本。 您可能可以重命名旧系统数据中的文件并复制这些文件,然后将其复制。 (当旧的系统数据被复制时,这将节省您复制的时间)。
- 删除/分区上的所有文件夹除了在运行时构build的文件夹,例如/ dev,/ sys,/ proc是我排除的less数几个。 保留权限。
- 将旧分区中的所有内容复制到除运行时内置的文件夹外的新分区。 保留当然权限。
- 重新启动系统,你应该能够访问恢复的系统。 根据需要修改其他configuration文件。 如果您正在更改系统,请使用udev / rules.d / ifgcfg-eth0。