2014-12-30 61 views
6

Vì vậy, tôi nâng cấp kernel yum -y update kernel trên hình ảnh cơ sở AWS EC2 của tôi, và tôi nhận được như sau:bẩn thỉu lỗi nghiêm trọng: không thể tìm thấy một mẫu phù hợp

Running Transaction 
    Installing : kernel-2.6.32-504.3.3.el6.x86_64 
grubby fatal error: unable to find a suitable template 

Dưới đây là nội dung của/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 

vì vậy grub.conf là không nhận được cập nhật, và kể từ khi tôi đã có kernel-2.6.32-504.1.3.el6.x86_64 cài đặt, grub không được cập nhật lần cuối cùng tôi được cập nhật kernel hoặc . Tôi đã thử thêm kernel bằng tay:

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 

và sau đó /boot/grub/grub.conf trông như thế này:

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 

Tuy nhiên, /vmlinuz-2.6.32-504.3.3.el6.x86_64 không phải là hạt nhân tôi bước vào. Vì vậy, tôi loại bỏ điều đó và cố gắng một lần nữa với:

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 

đó dẫn đến điều này:

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 

Tại thời điểm này, tôi tự sửa /boot/grub/grub.conf để default=0 và khởi động lại, và tôi EC2 sẽ không khởi động. Vì vậy, tôi đã cố gắng một bản sao dụ mới và nhận được tất cả các lỗi tương tự, vì vậy tôi sao chép các thiết lập hiện có để một mục mới:

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 

Và khởi động lại, và nó không khởi động được nữa. Tuy nhiên, một thử, tôi lặp đi lặp lại ở trên nhưng với root=/dev/xvda3, và điều đó cũng không khởi động được. Vì vậy, vào thời điểm này, tôi không có cách nào để nâng cấp hạt nhân của mình. Tôi làm gì?


CẬP NHẬT: Tôi đã tìm ra thư mục/boot/boot/stuff, và /boot/grub/grub.conf của tôi bây giờ trông như thế này:

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 

Và tôi có thể khởi động thành công của tôi hệ thống, tuy nhiên mọi thứ khác về điều này vẫn đúng: cài đặt hạt nhân mới vẫn dẫn đến "lỗi nghiêm trọng chết người: không thể tìm thấy mẫu phù hợp" và grubby --default-kernel vẫn không có kết quả. Tôi phải chỉnh sửa /boot/grub/grub.conf của mình theo cách thủ công cho bất kỳ cập nhật hạt nhân nào.

+0

Ngoài ra, hãy xem [lỗi grubby fatal error: không thể tìm thấy mẫu phù hợp] (https://serverfault.com/questions/673486/grubby-fatal-error-unable-to-find-a-suitable-template) trên serverfault. – bain

Trả lời

0

Tôi thấy grubby --default-kernel vẫn không có kết quả trong quá trình cập nhật hạt nhân quá CentOS AMI. Tôi đã điều tra lý do tại sao kết quả không có đầu ra bằng cách sử dụng ltrace.

Dường như grubby xác nhận UUID gốc là grub.conf từ kết quả đầu ra của ltrace. Tôi thực sự có thể cập nhật hạt nhân sau khi tôi thay đổi grub.conf để thêm root=UUID=[UUID from tune2fs] trong môi trường của mình.

+1

Tôi không hiểu ... bạn có thể giải thích thêm về ý nghĩa của "UUID từ tune2fs" không? Có thể hiển thị grub.conf của bạn để chúng tôi có thể xem bạn đã làm gì? Cảm ơn! – Jon

+0

Đây là dòng từ grub.conf của tôi: 'kernel /boot/vmlinuz-2.6.18-371.4.1.el5xen root = UUID = 507d18e3-1f39-4d4f-814e-05497334a4d4 ro console = hvc0' –

0

Sau đây sẽ tạo ra các tập tin grub.cfg đúng

grub2-mkconfig -o /boot/grub2/grub.cfg 
+0

Đã thử điều này với CentOS 5,11 và không có chương trình hoặc tập lệnh grub2-mkconfig. Bất kỳ gợi ý nào? –

+0

@ CraigS.Anderson: Hãy thử '/ usr/sbin/grub2-mkconfig' làm thư mục gốc. –

+1

Câu hỏi này liên quan đến di sản (<1.0) grub, chứ không phải grub2. – SmallLoanOf1M

Các vấn đề liên quan