Lors de l'ajout de nouveau matériel à un système, ou après la modification des fichiers de configuration qui peuvent être utilisés plus tôt dans le processus de démarrage, ou lors de la modification des options sur un module du noyau, il peut être nécessaire de reconstruire le disque virtuel initial (également appelé initrd ou initramfs) pour inclure les modules de noyau, les fichiers et les directives de configuration appropriés. Dans les exemples ci-dessous, vous verrez l'utilisation de $(uname -r), qui est un moyen de passer la version actuelle du noyau dans une commande sans la saisir.
Procédure
1. Il est recommandé de faire une copie de sauvegarde de l'initrd au cas où la nouvelle version rencontrerait un problème inattendu :
# 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. Reconstruisez maintenant l'initramfs pour la version actuelle du noyau :
# dracut -f
3. Si vous êtes dans une version du noyau différente de l'initrd que vous construisez (également si vous êtes en mode Rescue), vous devez spécifier la version complète du noyau, y compris l'architecture :
# dracut -f /boot/initramfs-2.6.39-400.17.1.el6.x86_64.img 2.6.39-400.17.1.el6uek.x86_64
L'option -f forcera l'écrasement de toute image de disque virtuel initiale existante sur le chemin que vous avez spécifié
Travailler avec les sauvegardes
Comme mentionné précédemment, il est recommandé de faire une sauvegarde de l'initrd précédent en cas de problème avec le nouveau. Si nécessaire, il est possible de créer une entrée distincte dans /boot/grub/grub.conf pour l'image initiale du disque virtuel de sauvegarde, afin de choisir facilement l'ancienne version au démarrage sans avoir à restaurer la sauvegarde. Cet exemple de configuration permet de sélectionner la nouvelle ou l'ancienne image du disque virtuel initial dans le menu 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
Alternativement, vous pouvez entrer en mode édition dans grub si vous devez choisir l'ancien initrd et que vous n'avez pas fait d'entrée séparée dans grub.conf avant de redémarrer. Pour ce faire :
– Si grub est sécurisé par un mot de passe, appuyez sur p et saisissez le mot de passe.
– Utilisez les touches fléchées pour mettre en surbrillance l'entrée correspondant au noyau que vous souhaitez démarrer.
– Appuyez sur e pour modifier.
– Mettez en surbrillance la ligne initrd et appuyez à nouveau sur e.
– Changez le chemin de l'initrd vers la copie de sauvegarde que vous avez faite (comme /initramfs-2.6.32-358.el6.x86_64.img.bak)
– Appuyez sur Entrée pour enregistrer temporairement les modifications que vous avez apportées
– Appuyez sur b pour démarrer