Dans certaines conditions rares, vous pouvez obtenir une corruption du chargeur GRUB. Cet article explique comment réinstaller le chargeur GRUB sur CentOS/RHEL 5 ou 6.
Comment savez-vous que GRUB a été corrompu
Vous trouverez ci-dessous certains des symptômes que vous verriez en cas de corruption du chargeur GRUB.
1. Le menu GRUB ne s'affiche pas lors du démarrage du serveur
2. Démarrez le serveur en mode de secours à l'aide du DVD d'installation et vérifiez l'en-tête du disque de démarrage. Si le chargeur GRUB est corrompu :
# file -s /dev/sda /dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 64998927 sectors; partition 2: ID=0x82, starthead 254, startsector 64998990, 2104515 sectors
Alors qu'un bon ressemble à :
# file -s /dev/sda /dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 64998927 sectors; partition 2: ID=0x82, starthead 254, startsector 64998990, 2104515 sectors, code offset 0x48
La sortie peut varier d'une version à l'autre, mais le point clé est que la première sortie manque 'décalage de code 0x48 ‘, qui est un indicateur du code GRUB Stage 1.
Réinstallation du chargeur GRUB
Supposons que le disque de démarrage est sda , le / la partition est sda2 , et /boot la partition est sda1 .
1. Démarrez le serveur en mode de secours et montez le système de fichiers automatiquement. Veuillez vous référer au message ci-dessous pour démarrer le serveur en mode de secours.
CentOS / RHEL 6 :Comment démarrer en mode secours2. Le / la partition serait montée sous /mnt/sysimage automatiquement. Sinon, montez-le manuellement :
# mount /dev/sda2 /mnt/sysimage
3. Montez la partition /boot et /dev manuellement, pour préparer l'environnement chroot :
# mount /dev/sda1 /mnt/sysimage/boot # mount -o bind /dev /mnt/sysimage/dev # chroot /mnt/sysimage
4. Réinstallez le chargeur GRUB
# grub-install /dev/sda
Redémarrez le serveur et vous devriez pouvoir revoir le menu GRUB.
# rebootCentOS / RHEL 7 :Comment réinstaller GRUB2 depuis le mode de secours
Réinstaller grub sur un périphérique multichemin
Suivez les étapes ci-dessous lorsqu'un serveur configuré pour démarrer à partir d'un réseau de stockage (SAN) utilisant des périphériques à chemins multiples nécessite la réinstallation de grub. Grub nécessite une réinstallation chaque fois que le Master Boot Record (MBR) sur le périphérique de démarrage est endommagé ou écrasé par d'autres chargeurs de démarrage. Il est également requis dans les situations où le périphérique de démarrage change après l'installation, comme lorsque le démarrage à partir de la configuration SAN est activé après l'installation du serveur ou lorsqu'un périphérique de démarrage SAN à chemin unique est reconfiguré pour devenir multichemin.
1. Démarrez le serveur en mode de secours avec le multipathing activé à l'aide du "linux rescue mpath " option de démarrage. Pour afficher la configuration multi-accès actuelle, vous pouvez exécuter la commande suivante dans un environnement de secours :
# multipath -ll
2. Modifiez /etc/fstab pour utiliser des noms de périphériques multipath (/dev/mapper/mpathX) au lieu de noms simples (/dev/sdY) pour monter /boot. Nous vous recommandons d'utiliser l'UUID de /boot pour rendre l'identification de l'appareil plus fiable.
3. Ajoutez le périphérique multipath contenant /boot à grub et installez le chargeur de démarrage en utilisant :
# grub grub> device (hd0) /dev/mapper/mpatha grub> root (hd0,0) grub> setup (hd0) grub> quit
Remarque :La commande grub-install ne fonctionne pas pour les périphériques multipath.
4. Re-générez le disque virtuel initial faisant référence au post ci-dessous.
CentOS / RHEL 6 :comment reconstruire l'image initiale du disque RAMCentOS / RHEL 5 :comment reconstruire l'image initiale du disque RAM