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. Per prima cosa esegui il backup del Ramdisk iniziale originale:
# cp /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.bak
2. Creazione di un nuovo Ramdisk iniziale (dopo aver aggiunto i nuovi moduli in /etc/modprobe.conf o /etc/modules.conf per Kernel 2.4):
# mkinitrd -f /boot/initrd-`uname -r`-new.img `uname -r`
Puoi vedere un nuovo file ramdisk iniziale initrd-[kernel-version]-new.img è stato creato nella directory /boot. parametri mkinitrd (consultare man mkinitrd per maggiori dettagli):
# mkinitrd --help usage: mkinitrd [--version] [--help] [-v] [-f] [--preload [module]] [--force-ide-probe] [--force-scsi-probe | --omit-scsi-modules] [--image-version] [--force-raid-probe | --omit-raid-modules] [--with=[module]] [--force-lvm-probe | --omit-lvm-modules] [--builtin=module] [--omit-dmraid] [--net-dev=interface] [--fstab=fstab] [--nocompress] [initrd-image] [kernel-version]
I parametri più utilizzati sono:
-f Consente a mkinitrd di sovrascrivere un file immagine esistente.–preload=module – Caricare il modulo modulo nell'immagine ramdisk iniziale. Il modulo viene caricato prima di qualsiasi modulo SCSI specificato in /etc/modprobe.conf. Questa opzione può essere utilizzata tutte le volte necessarie.
–with=module – Caricare il modulo dei moduli nell'immagine ramdisk iniziale. Il modulo viene caricato dopo tutti i moduli SCSI specificati in /etc/modprobe.conf. Questa opzione può essere utilizzata tutte le volte che è necessario.
Se hai scelto un nuovo nome per il tuo file Ramdisk iniziale, devi aggiungere una nuova voce in /etc/grub.conf per poterlo utilizzare:
title Red Hat Enterprise Linux 5 (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img
Dopodiché, sarai in grado di scegliere la voce "Nuovo initrd" nel tuo menu Grub all'avvio.
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 5 (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img title Red Hat Enterprise Linux 5 w/ old initrd (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.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
Utilizza 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
Cambia il percorso di initrd alla copia di backup che hai eseguito (ad esempio /initrd-2.6.32-200.13.1.el5.img.bak)
Premi Invio per salvare temporaneamente le modifiche hai fatto
Premi b per l'avvio