红帽linux不能启动,RedHat 5.3系统无法启动问题处理过程
【问题现象】:Redhat 5.3虚拟机在使用一段时间后进行重启,当再次启动时无法正常进入系统,出现如图1所示错误。图1无法进入系统【告警信息】:无【问题分析】:(1)通过抓取虚拟机串口日志,虚拟机在启动过程出现如下报错信息。echo sitescope-command-begin; /bin/df -k /; echo sitescope-command-endMemory for crash
【问题现象】:
Redhat 5.3虚拟机在使用一段时间后进行重启,当再次启动时无法正常进入系统,出现如图1所示错误。
图1无法进入系统

【告警信息】:无
【问题分析】:
(1)通过抓取虚拟机串口日志,虚拟机在启动过程出现如下报错信息。
echo sitescope-command-begin; /bin/df -k /; echo sitescope-command-end
Memory for crash kernel (0x0 to 0x0) notwithin permissible range
WARNING calibrate_APIC_clock: the APIC timer calibration may be wrong.
PCI: PIIX3: Enabling Passive Release on 0000:00:01.0
Red Hat nash version 5.1.19.6 starting
read_urandom: /dev/urandom: open failed: No such file or directory
read_urandom: /dev/urandom: open failed: No such file or directory
Unable to access resume device (/dev/mapper/VolGroup00-LogVol01)
mount: could not find filesystem '/dev/root'
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init!
根据串口日志(红色部分)初步判断是系统在启动过程中找不到磁盘导致虚拟机启动失败。
(2)在虚拟机重启前,虚拟机内部有升级PV Driver的操作,怀疑和升级PV Driver相关。
(3)尝试通过挂载Redhat5.3版本的ISO的方式来修复镜像,具体操作步骤如下所示。
a、通过VNC挂载光驱方式挂载ISO(如图2所示),并设置虚拟机从光驱启动(如图3所示)。
图2挂载ISO

图3从光驱启动

b、当虚拟机启动出现如图4所示界面时,输入“linux rescue”,然后按回车。
图4界面1

c、选择“OK”。
图5界面2

d、选择“OK”。
图6界面3

e、选择“NO”。
图7界面4

f、选择“Continue”。
图8界面5

g、选择“OK”。
图9界面6

h、按照如下所示操作步骤依次执行完成卸载PV Driver操作。
umount /mnt/sysimage/boot/
mount /dev/mapper/VolGroup00-LogV0l00 /mnt/sysimage/
mount /dev/hda1 /mnt/sysimage/boot/
mount /proc/ /mnt/sysimage/proc/
mount /sys/ /mnt/sysimage/sys/
mount /dev/ /mnt/sysimage/dev/
cd /mnt/sysimage/
chroot ./
cd /etc/.uvp-monitor/
./uninstall
命令执行如图10所示。
图10卸载PV Driver

i、按照图11所示操作替换系统initrd文件为redhat5.3原始的initrd文件。
cd /boot/
cp –f initrd-2.6.18-128.el5.img.uvpbak initrd-2.6.18-128.el5.img
图11替换系统initrd文件

j、执行“vi /boot/grub/menu.lst”命令打开menu.lst文件,修改default值为1。
图12修改menu.lst

同时删除图13中红框的字符串。
图13删除字符串

修改完成后,保存退出,然后重启虚拟机即可正常进入系统。
(4)在安装PV Driver的过程中会调用系统的mkinitrd命令重新生成的新的initrd文件,通过对比没有问题的initrd包和PV Driver生成的有问题的initrd包,包内部有一个lvm文件大小有差异,进一步查看系统messages日志发现,用户在2014年12月11号更新LVM包版本号到2.02.56-8版本,而官方发布的的Redhat5.3版本的LVM包版本号为2.02.40-6。如图14所示。
图14查看messages日志

在升级PVDriver过程中调用mkinitrd命令(该命令会依赖LVM包)重新生成initrd文件,由于高版本LVM命令跟系统不兼容,导致生成的initrd文件有异常,当虚拟机重启时即会出现反复重启现象。
(5)在不安装PVDriver的情况下,单纯的通过mkinitrd命令重新生成initrd文件,结果虚拟机也同样会出现反复重启现象。使用物理机安装Redhat5.3版本,然后将LVM包单独升级到2.02.40-6版本,使用mkinitrd命令重新生成initrd文件,重启服务器也会出现跟本案例相同的现象。
综上所述,该问题是由于虚拟机内部安装了一个不兼容Redhat5.3系统的LVM包,生成的initrd文件有异常,最终导致虚拟机无法启动。
【解决方法】:
卸载2.02.56-8版本的LVM包,然后重新安装Redhat5.3自带的2.02.40-6版本LVM包。
操作步骤如下:
(1)使用root账号登录虚拟机,执行“rpm -qa | grep lvm2”命令查询系统上LVM版本号是否为2.02.56-8版本。如图15所示。
图15查询LVM版本号

(2)当LVM版本号为2.02.56-8时,使用“rpm -e --nodeps lvm2-2.02.56-8.el5”命令卸载该rpm包。如图16所示。
图16卸载rpm包

(3)从官方的Redhat5.3版本的ISO文件中获取LVM包lvm2-2.02.40-6.el5.x86_64.rpm,并使用“rpm -Uvh lvm2-2.02.40-6.el5.x86_64.rpm”命令安装该rpm包。
图17安装rpm包

(4)使用“mkinitrd -v -f /boot/initrd-2.6.18-128.el5.img 2.6.18-128.el5”命令重新生成新的initrd文件。
图18重新生成新initrd文件

【总结&建议】:
同版本的RPM包需要匹配相应版本的OS系统,不然可能会出现系统不兼容的异常情况。如果需要安装或者升级RPM包,尽量使用跟所使用OS版本匹配的RPM包。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)