6

そこで、AWS EC2 ベース イメージのカーネルをアップグレードyum -y update kernelしたところ、次のようになりました。

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/ の内容を把握したところ、/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 --default-kernel結果になり、出力はまだありません。カーネルの更新のために /boot/grub/grub.conf を手動で編集する必要があります。

4

2 に答える 2

1

以下は、正しい grub.cfg ファイルを生成します。

grub2-mkconfig -o /boot/grub2/grub.cfg
于 2015-06-21T13:48:10.900 に答える
0

CentOS AMIでも、カーネルの更新中にgrubby--default-kernelがまだ出力されないことがわかりました。ltraceを使用して、結果が出力されない理由を調査しました。

grubby はltracegrub.confの出力からルート UUID を確認しているようです。環境に追加するように変更した後、実際にカーネルを更新できました。grub.confroot=UUID=[UUID from tune2fs]

于 2015-03-26T09:35:50.590 に答える