| 
                         所以我在我的AWS EC2基础映像上升级了内核yum -y更新内核,我得到以下内容: 
Running Transaction
  Installing : kernel-2.6.32-504.3.3.el6.x86_64
grubby fatal error: unable to find a suitable template
 
这是/boot/grub/grub.conf的内容: 
default=0
timeout=0
hiddenmenu
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=LABEL=rootfs console=ttyS0
        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
 
所以grub.conf没有得到更新,因为我已经安装了kernel-2.6.32-504.1.3.el6.x86_64,所以上次更新内核时grub没有得到更新.我尝试手动添加内核: 
grubby --grub --add-kernel="/boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=LABEL=rootfs 
  console=ttyS0" --title="CentOS (2.6.32-504.3.3.el6.x86_64)" 
  --initrd=/boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
 
然后/boot/grub/grub.conf看起来像这样: 
default=0
timeout=0
hiddenmenu
title CentOS (2.6.32-504.3.3.el6.x86_64)
        kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=LABEL=rootfs console=ttyS0
        initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=LABEL=rootfs console=ttyS0
        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
 
但是,/ vmlinuz-2.6.32-504.3.3.el6.x86_64不是我输入的内核.所以我删除了它并再次尝试: 
grubby --grub --add-kernel="/boot/boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=LABEL=rootfs 
  console=ttyS0" --title="CentOS (2.6.32-504.3.3.el6.x86_64)" 
  --initrd=/boot/boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
 
结果如下: 
timeout=0
default=1
hiddenmenu
title CentOS (2.6.32-504.3.3.el6.x86_64)
        kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=LABEL=rootfs console=ttyS0 root=(hd0,0)
        initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=LABEL=rootfs console=ttyS0
        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
 
此时,我手动编辑/boot/grub/grub.conf为default = 0并重新启动,我的EC2无法启动.所以我尝试了一个新的实例副本并得到了所有这些相同的错误,因此我将现有设置复制到了一个新条目: 
default=0
timeout=0
hiddenmenu
title CentOS (2.6.32-504.3.3.el6.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=LABEL=rootfs console=ttyS0
        initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
 
并重新启动,它无法再次启动.还有一次尝试,我重复了上面的内容,但是使用了root = / dev / xvda3,并且无法启动.所以在这一点上,我根本无法升级我的内核.我该怎么办? 
更新:我想出了/ boot / boot / stuff,我的/boot/grub/grub.conf现在看起来像这样: 
default=0
timeout=0
hiddenmenu
title CentOS (2.6.32-504.3.3.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=LABEL=rootfs console=ttyS0
        initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img
 
我可以成功启动我的系统,但是关于此的其他一切仍然是正确的:安装新内核仍会导致“grubby致命错误:无法找到合适的模板”,而grubby –default-kernel仍然没有输出.我必须手动编辑我的/boot/grub/grub.conf以进行任何内核更新.
最佳答案
在CentOS AMI中,我看到grubby –default-kernel在内核更新期间仍然没有输出.我调查了为什么使用ltrace没有输出的结果. 
似乎grubby从ltrace的输出确认了grub.conf的根UUID. 在我改变了grub.conf以在我的环境中添加root = UUID = [来自tune2fs的UUID]后,我实际上可以更新内核.                         (编辑:莱芜站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |