我不是Kernel东西的专家,但这是我遇到的: 我有一个Xen CentOS 6.x VM,在使用“yum update”命令后,我的VPS停止工作并重新启动它无法解决任何问题。所以我尝试了控制台视图,看到Xen说这个VM根本不存在!经过大量的搜索,我找到了解决方案。这是我当前的/etc/grub.conf文件:
default=0
timeout=5
title CentOS (2.6.32-573.7.1.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-573.7.1.el6.x86_64 console=hvc0 xencons=tty0 root=/dev/xvda1 ro crashkernel=auto LANG=en_US.UTF-8
title CentOS (2.6.32-573.3.1.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-573.3.1.el6.x86_64 console=hvc0 xencons=tty0 root=/dev/xvda1 ro crashkernel=auto LANG=en_US.UTF-8
initrd /boot/initramfs-2.6.32-573.3.1.el6.x86_64.img
title CentOS (2.6.32-431.11.2.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-431.11.2.el6.x86_64 console=hvc0 xencons=tty0 root=/dev/xvda1 ro crashkernel=auto LANG=en_US.UTF-8
initrd /boot/initramfs-2.6.32-431.11.2.el6.x86_64.img
title CentOS (2.6.32-431.5.1.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-431.5.1.el6.x86_64 console=hvc0 xencons=tty0 root=/dev/xvda1 ro crashkernel=auto LANG=en_US.UTF-8
initrd /boot/initramfs-2.6.32-431.5.1.el6.x86_64.img
title vmlinuz-2.6.32-358.0.1.el6.x86_64
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-358.0.1.el6.x86_64 console=hvc0 xencons=tty0 root=/dev/xvda1 ro
initrd /boot/initramfs-2.6.32-358.0.1.el6.x86_64.img
由于我不是专家,我可以说第一个选项没有initrd线!所以我将“deafult = 0”改为“default = 1”,然后又开始工作了。
有人可以告诉我为什么会这样吗?我在生产服务器上,这个问题给我带来了巨大的压力,更不用说服务器停机了几天才能找到解决方案!
提前感谢您的帮助
答案 0 :(得分:1)
好吧,为什么会发生这种情况是因为当你执行'yum update'时出现了问题。
不幸的是,这是世界上只有一个人可以弄清楚出了什么问题的事情之一。那个人就是你,因为在每个读过你问题的人中,只有你有权访问有问题的虚拟机,并且可以检查/ boot的内容和系统日志。
您可以先确定/boot/initramfs-2.6.32-573.7.1.el6.x86_64.img
是否存在。
如果我猜测,这只是猜测,我猜想在升级过程中你的/ boot空间不足。因此,内核安装脚本无法创建initramfs文件,但由于脚本中存在错误,未检测到此错误,或者您检测到错误未在控制台上发现错误消息;无论情况如何,脚本的另一部分继续更新grub.conf,由于initramfs文件不存在,因此省略了该指令。
如果是这种情况,我会首先使用rpm
命令手动删除573.7.1内核包,以便删除损坏的安装。然后,通过删除最旧的内核,可以在/ boot上释放额外的空间,此时yum update
应该能够重新安装最新的内核。
但是,再一次,这只是一个有根据的猜测,因为正如我所说,我不是世界上唯一能够确定和调查此问题的人。