Quando si aggiunge nuovo hardware a un sistema, o dopo aver modificato i file di configurazione che possono essere utilizzati in precedenza nel processo di avvio, o quando si cambiano le opzioni su un modulo del kernel, potrebbe essere necessario ricostruire il ramdisk iniziale (noto anche come initrd o initramfs) per includere i moduli del kernel, i file e le direttive di configurazione appropriati. Negli esempi seguenti vedrai l'utilizzo di $(uname -r), che è un modo per passare la versione corrente del kernel in un comando senza doverla effettivamente digitare.
Procedura
1. Si consiglia di eseguire una copia di backup di initrd nel caso in cui la nuova versione abbia un problema imprevisto:
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# ll /boot/initramfs-$(uname -r).img* -rw-r--r--. 1 root root 16209434 Oct 11 14:43 /boot/initramfs-2.6.32-358.el6.x86_64.img -rw-r--r--. 1 root root 16209434 Apr 9 07:38 /boot/initramfs-2.6.32-358.el6.x86_64.img.bak
2. Ora ricostruisci initramfs per la versione corrente del kernel:
# dracut -f
3. Se sei in una versione del kernel diversa da initrd che stai compilando (anche se sei in modalità Rescue) devi specificare la versione completa del kernel, inclusa l'architettura:
# dracut -f /boot/initramfs-2.6.39-400.17.1.el6.x86_64.img 2.6.39-400.17.1.el6uek.x86_64
L'opzione -f forzerà la sovrascrittura di qualsiasi immagine ramdisk iniziale esistente nel percorso che hai specificato
Lavorare con i backup
Come accennato in precedenza, si consiglia di eseguire un backup dell'initrd precedente nel caso qualcosa vada storto con quello nuovo. Se richiesto, è possibile creare una voce separata in /boot/grub/grub.conf per l'immagine ramdisk iniziale del backup, per scegliere comodamente la vecchia versione all'avvio senza dover ripristinare il backup. Questa configurazione di esempio consente di selezionare la nuova o la vecchia immagine ramdisk iniziale dal menu di grub :
title Red Hat Enterprise Linux (2.6.32-358.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=LABEL=/ initrd /initramfs-2.6.32-358.el6.x86_64.img title Red Hat Enterprise Linux w/ old initrd (2.6.32-358.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=LABEL=/ initrd /initramfs-2.6.32-358.el6.x86_64.img.bak
In alternativa, puoi accedere alla modalità di modifica in grub se devi scegliere il vecchio initrd e non hai inserito una voce separata in grub.conf prima di riavviare. Per farlo:
– Se grub è protetto con una password, premi p e inserisci la password.
– Usa i tasti freccia per evidenziare la voce relativa al kernel che desideri avviare.
– Premi e per modificare.
– Evidenzia la riga initrd e premi di nuovo e.
– Modifica il percorso di initrd nella copia di backup che hai creato (come /initramfs-2.6.32-358.el6.x86_64.img.bak)
– Premi Invio per salvare temporaneamente le modifiche apportate
– Premi b per l'avvio