2014-12-30 22 views
6

Così ho aggiornato il kernel yum -y update kernel la mia immagine di base AWS EC2, e ottengo il seguente:errore fatale sporca: in grado di trovare un modello adatto

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

Ecco il contenuto di/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 

Quindi grub.conf non è sempre aggiornato, e dal momento che ho già installato kernel-2.6.32-504.1.3.el6.x86_64, grub non ha ottenuto aggiornato l'ultima volta che ho aggiornato il kernel sia . Ho provato ad aggiungere manualmente il kernel:

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 

e poi /boot/grub/grub.conf si presentava così:

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 

Tuttavia, /vmlinuz-2.6.32-504.3.3.el6.x86_64 non è il kernel sono entrato. Così ho rimosso che e provato di nuovo con:

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 

che ha portato in questo:

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 

A questo punto, ho modificato manualmente /boot/grub/grub.conf per default=0 e riavviato, e il mio EC2 non si avvia. Così ho provato una nuova copia istanza e ottenuto tutti questi stessi errori, così ho copiato le impostazioni esistenti per una nuova voce:

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 

e riavviato, e si riesce ad avviarsi di nuovo. Ancora un altro tentativo, ho ripetuto quanto sopra ma con root=/dev/xvda3, e che non è riuscito ad avviare pure. Quindi, a questo punto, non ho assolutamente modo di aggiornare il mio kernel. Cosa faccio?


UPDATE: Ho capito il/boot/boot/roba, e il mio /boot/grub/grub.conf ora assomiglia a questo:

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 

E posso avviare con successo il mio sistema, tuttavia tutto il resto su questo rimane vero: l'installazione di un nuovo kernel produce ancora "errore fatale grubby: impossibile trovare un modello adatto", e grubby --default-kernel continua a non produrre alcun output. Devo modificare il mio /boot/grub/grub.conf manualmente per ogni aggiornamento del kernel.

+0

Vedere anche [errore irreversibile grubby: impossibile trovare un modello adatto] (https://serverfault.com/questions/673486/grubby-fatal-error-unable-to-find-a-suitable-template) su serverfault. – bain

risposta

0

Ho visto sporchi --default-kernel risultati ancora in uscita durante l'aggiornamento del kernel troppo in CentOS AMI. Ho studiato il motivo per cui i risultati non hanno prodotto utilizzando ltrace.

Sembra che grubby confermi l'UUID radice di grub.conf dalle uscite di ltrace. Potrei effettivamente aggiornare il kernel dopo aver modificato grub.conf per aggiungere root=UUID=[UUID from tune2fs] nel mio ambiente.

+1

Non capisco ... puoi spiegare di più cosa intendi con "UUID di tune2fs"? Forse mostra il tuo grub.conf in modo che possiamo vedere cosa hai fatto? Grazie! – Jon

+0

Ecco la riga dal mio grub.conf: 'kernel /boot/vmlinuz-2.6.18-371.4.1.el5xen root = UUID = 507d18e3-1f39-4d4f-814e-05497334a4d4 ro console = hvc0' –

0

Di seguito genera il file grub.cfg corretto

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

Provato con CentOS 5.11, e non vi è alcun programma o script grub2-mkconfig. Qualche suggerimento? –

+0

@ CraigS.Anderson: prova '/ usr/sbin/grub2-mkconfig' come root. –

+1

Questa domanda riguarda legacy (<1.0) grub, non grub2. – SmallLoanOf1M