每次启动新的 RHEL 实例时,我都喜欢执行yum update
以从最新的系统开始。但是,每次我尝试重新启动实例时,实例都再也无法运行。
我排除了根本原因是内核更新,以下是重现该问题的最少步骤:
- 启动新的 RHEL 6.1 实例
- 连接,然后运行:
yum update kernel*
reboot
系统处于宕机状态。EC2 管理控制台中的系统日志没有提供太多帮助:
...
Please stand by while rebooting the system...
md: stopping all md devices.
xenbus_dev_shutdown: device/console/0: Initialising != Connected, skipping
Restarting system.
没有提到内核恐慌、启动问题等。只是卡在那里。
从我读到的内容来看,似乎无法将默认内核与 EC2 实例一起使用。如果这是真的,那么yum
在执行通用的 时,如何避免意外使用 更新内核,从而导致实例终止yum update
?
答案1
只需编辑文件:/etc/yum.conf 并在其中添加一个条目,如下所示:
排除 = 内核*
此后,yum 将排除所有以内核作为起始名称的软件包。
您可以在此网址中阅读更多详细信息:
http://www.cyberciti.biz/faq/redhat-centos-linux-yum-update-exclude-packages/
关于您无法升级内核的问题,您说得对,您无法像在普通 PC 中升级那样升级内核。Amazon EC2 在内核设置的情况下使用自定义设置,有关详细信息,请访问此 URL,了解如何在 EC2 实例上执行内核升级:
答案2
看起来您遇到了 RHEL 中包含的内核版本中的错误。去年 Xen 开发电子邮件列表上有一个关于此问题的帖子: http://old-list-archives.xen.org/archives/html/xen-devel/2010-11/msg00616.html
您可能应该尝试通过 EC2 控制台或命令行实用程序重新启动您的实例。
关于您无法升级内核的问题:现代 Amazon 机器映像 (AMI) 不再存在这种情况。较新的 AMI(如 RHEL 6 AMI)使用 PV-GRUB 启动,这允许您像在任何其他服务器上一样升级内核。
有关 PV-GRUB 的更多信息,请参阅此处的 EC2 文档:http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?UserProvidedkernels.html
答案3
问题是块设备的名称从 /dev/xvda 更改为 /dev/xvde,您可以更改 menu.lst 以指向 /dev/xvde1 和 fstab 以挂载 xvde 1 2 3 或标记驱动器并指向标签
我使用标签,问题就解决了。
答案4
亚马逊发布的最新版本似乎使用了 LABELS,但这并不能真正解决问题。当您开始安装另一个实例卷以对其进行恢复时,就会出现此问题。