问题描述:
两台同型号的服务器(两台机器上运行HA,通过HA来监控他们的应用以及Oracle数据库)由于用户操作不当,造成一台服务器无法正常关机(能关闭内核,但不能关闭电源),尝试了在内核中加入电源管理的参数,仍然不能解决。更郁闷的是用户没有安装光盘,无法重装系统,那么唯一的办法就是把另外一台机器上的根分区移植到这台机器上。
解决方法:
本想使用dd来拷贝根分区,但无奈硬盘空间不够,所以只有使用tar来备份了,tar的方法其实很简单,但像根分区下的一些/proc、/sys、/tmp、/dev这应该排除掉,其次oracle这些应用软件的安装目录也不需要打包(太大),因为tar好像最大只支持8GB的单个文件。当然tar文件存放的目录一定要排除掉。具体命令如下:
#tar zcvf /Bak/root-bak.tgz --exclude /proc --exclude /sys --exclude /tmp --exclude /dev --exclude /Bak --exclude /ora_data /
|
待tar命令完成后,将tar包拷贝至移动硬盘上。现在就可以转到另外一台机器来操作了,在执行恢复操作前,建议将这台机器上的Oracle等应用程序安装的目录以及一些重要的数据先备份。然后通过光盘引导至rescue模式,在这里需要注意的是,在进入rescue模式之前,一定要先将硬盘硬盘插上,否则进入rescue模式后系统不会自动添加USB驱动。其次在进入rescue模式的过程中,要选择“SKIP”跳过根分区的挂载。接下来的操作就是格式化根分区再将tar解开到根分区上。具体命令如下:
#mkfs.ext3 /dev/sda1
然后,挂在新的文件系统并还原操作系统。
#mkdir /newsystem
#mount /dev/sda1 /newsystem
#mkdir /bak
#mount /dev/sdb1 /bak
#tar zxvf /bak/root-bak.tgz -C /newsystem
#chroot /newsystem
#grub-install /dev/sda
|
开始我以为做到这一步查多算完工了,但是重新启动的时候报kernel panic的错误,提示不能挂载根分区,后来我将/etc/fstab、/etc/grub.conf文件中的LABEL全部该为实际的分区名称,并重做initrd:
# cp /boot/initrd-2.6.18-8.2smp.img /boot/initrd-2.6.18-8.2smp.img.bak
# mkinitrd /boot/initrd-2.6.18-8.2smp.img 2.6.18-8.2smp
|
最后重新启动OK,能正常进入系统,也能正常关机了。把备份的Oracle以及应用再恢复回去,并启动HA,一切OK!
BTW:BLOG好久没更新了,今天刚好是BLOG一周年,所以写篇文章来纪念一下,呵呵
阅读(2683) | 评论(0) | 转发(0) |