GRUB : Réinstallation complète en production

Bonsoir à tous !
Voici un petit défi dont je me serai bien passé.

J’ai un serveur en production sous Debian 6. Sur ce serveur il y a un RAID1 avec deux disques. Le premier (/dev/sda) est tombé en panne. Grub etait installé dessus et uniquement sur celui-là (faute de l’ancien admin, oui).
Il m’est impossible d’installer le grub sur l’autre disque présent dans le raid (/dev/sdb) car je suis confronter à plusieurs erreurs notamment à cause de LVM (error: Unknown LVM metadata header) et du raid. Il ne trouve même plus les images linux et initrd :confused: :cry:

Bref, savez-vous comment réinstaller proprement un grub de A à Z sur une machine en production et sans avoir à redémarrer bien sûr car je sais qu’il ne redémarrera pas.

Merci d’avance :pray: :pray:

Bonsoir,

Juste une piste mais à creuser si vous disposez d’une machine pouvant remplacer temporairement le serveur de prod, la virtualisation.
Avec un outil comme vmware converter (certains diront ça pue, c’est pas libre) il est possible de convertir une machine physique, qui tourne, en machine virtuelle (P2V):
vmware.com/fr/products/converter
Cette image de machine virtuelle peut ensuite être exécutée sur le serveur de dépannage. A condition d’avoir une machine pas trop pourrie, avec un processeur Intel I5 ou I7, la dégradation des performances est faible et porte surtout pour l’affichage 3D, de peu d’utilité sur un serveur.
Pour mettre le serveur de dépannage en ligne et ne rien modifier à la configuration des clients, il suffit de débrancher du réseau l’actuel serveur et de lancer la VM avec la même @IP que le serveur à remplacer.
Cela rendra le serveur malade, disponible pour toute opération de maintenance nécessaire, y compris une réinstallation.
Quand vous aurez goûté à la souplesse de la virtualisation qui permet de déplacer une VM d’un serveur physique à un autre, vous voudrez peut-être conserver cette fonctionnalité , une fois votre serveur de prod réparé. Il y a un gain de temps conséquent car il n’y a rien à paramétrer ou à installer pour relancer la VM sur un autre serveur.
AMHA, pour la souplesse, le fin du fin consiste à associer virtualisation au NAS pour le stockage des data. Ceci ne dispense pas, pas plus que le raid, d’avoir une politique de sauvegarde.

Nota: Normalement, ces procédures sont formalisées, font l’objet de tests et de consignes écrites avant la panne. Comme le disait un peu crûment une de mes connaissances, c’est pas quand on a chié dans les draps qu’il faut serrer les fesses.

Bon courage.

Salut, je te remercie de ta réponse.
Je connais très bien la virtualisation, particulièrement avec VirtualBox. Cependant je n’ai pas cette possibilité sur ce site. Il me faut vraiment un moyen de réinstaller grub…

Merci qd même.

:pray:

Salut,

En admettant que ton serveur est actif :

dpkg-reconfigure grub-pc (ou grub2 ou … selon ce qui est installé)

Si le serveur est inactif, depuis un cd-live et chroot réinstaller grub-pc

Attention dans ce cas à ce que apt-listbugs soit actif :slightly_smiling:

Oui mon serveur est actif, je teste, merci gg.

EDIT :

EDIT 2 :
J’ai donc désinstallé le paquet puis réinstallé… :

aptitude install grub-pc grub-common Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Lecture de l'information d'état étendu Initialisation de l'état des paquets... Fait Écriture de l'information d'état étendu... Fait Lecture des descriptions de tâches... Fait Les NOUVEAUX paquets suivants vont être installés : grub-pc 0 paquets mis à jour, 1 nouvellement installés, 0 à enlever et 318 non mis à jour. Il est nécessaire de télécharger 0o/1001ko d'archives. Après dépaquetage, 2527ko seront utilisés. Écriture de l'information d'état étendu... Fait Préconfiguration des paquets... Sélection du paquet grub-pc précédemment désélectionné. (Lecture de la base de données... 38909 fichiers et répertoires déjà installés.) Dépaquetage de grub-pc (à partir de .../grub-pc_1.98+20100804-14+squeeze1_amd64.deb) ... Traitement des actions différées (« triggers ») pour « man-db »... Paramétrage de grub-pc (1.98+20100804-14+squeeze1) ... Generating core.img error: unknown LVM metadata header. error: unknown LVM metadata header. error: unknown LVM metadata header. /usr/sbin/grub-probe: error: no such disk. Auto-detection of a filesystem of /dev/md0 failed. Please report this together with the output of "/usr/sbin/grub-probe --device-map=/boot/grub/device.map --target=fs -v /boot/grub" to <bug-grub@gnu.org> dpkg : erreur de traitement de grub-pc (--configure) : le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1 Des erreurs ont été rencontrées pendant l'exécution : grub-pc E: Sub-process /usr/bin/dpkg returned an error code (1) Échec de l'installation d'un paquet. Tentative de réparation : Paramétrage de grub-pc (1.98+20100804-14+squeeze1) ... Generating core.img error: unknown LVM metadata header. error: unknown LVM metadata header. error: unknown LVM metadata header. /usr/sbin/grub-probe: error: no such disk. Auto-detection of a filesystem of /dev/md0 failed. Please report this together with the output of "/usr/sbin/grub-probe --device-map=/boot/grub/device.map --target=fs -v /boot/grub" to <bug-grub@gnu.org> dpkg : erreur de traitement de grub-pc (--configure) : le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1 Des erreurs ont été rencontrées pendant l'exécution : grub-pc Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Lecture de l'information d'état étendu Initialisation de l'état des paquets... Fait Écriture de l'information d'état étendu... Fait Lecture des descriptions de tâches... Fait

Re,

grub2-common et grub-pc-bin sont buggués, c’est pourquoi j’insiste sur la nécessite de apt-listbugs :slightly_smiling:

Je regarde le wiki : isalo.org/wiki.debian-fr/Apt-listbugs

Mais je ne comprend pas ce que me permettra ce paquet. Me permettra-t-il de réussir l’installation du grub ? :unamused:

Re,

Peut-être pas, mais il t’éviteras d’installer des paquets buggués sur une machine en production et il pourrait éventuellement rexpliquer pourquoi tu ne peux réinstaller !

Ca ne fonctionne toujours pas. Je sens que je l’ai dans le … :013

Essaye de spécifier seulement /dev/sdb au lieu de /dev/md? après [mono]dpkg-reconfigure grub-pc[/mono]
Comment ce système a-t-il été démarré avant que son grub se mette en rideau ?
[mono]cat /proc/cmdline[/mono]
Qu’en est-il de /boot ? Voyant qu’il s’agit d’une debian squeeze, nous imaginons que /boot devait se trouver en une partition propre.
Voir si /boot est monté à travers [mono]mount[/mono],[mono]df -hT[/mono], voir son contenu [mono]ls -alh /boot[/mono].
Si /boot a été perdu à cause de la défaillance de /dev/sda, tu pourrais le recréer en /dev/sdb.
Est-ce que tu pourrais remplacer le disque défaillant ?

Qu’en est-il de RAID (type, /boot, UUUU, UU_U, U__U )? [mono]cat /proc/mdstat[/mono]

Qu’en est-il de LVM ? [mono]lvs;pvs;vgs[/mono]
[mono]lvs[/mono](lv:logical volume)
[mono]pvs[/mono] (pv :physical volume)
[mono]vgs[/mono] (vg : volume group)

Comment se combinent RAID et LVM ?
RAID sur LVM ?

Un fil traitant d’un problème approchant :
probleme-grub-suite-a-reinstallation-debian-t50566.html

Même erreur.

Pas de soucis jusqu’à hier quand /dev/sda est décédé. Transparence complète sur la production grâce au RAID. Avant de rebooter pour changer le disque je m’assure que grub soit installé sur /dev/sdb… et là, la cata commence.

# cat /proc/cmdline root=/dev/mapper/vg01-root ro quiet

[quote]Qu’en est-il de /boot ? Voyant qu’il s’agit d’une debian squeeze, nous imaginons que /boot devait se trouver en une partition propre.
Voir si /boot est monté à travers [mono]mount[/mono],[mono]df -hT[/mono][/quote]

# mount /dev/mapper/vg01-root on / type reiserfs (rw) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) procbususb on /proc/bus/usb type usbfs (rw) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/md0 on /boot type ext2 (rw) /dev/mapper/vg01-datas on /datas type reiserfs (rw) /dev/mapper/vg01-home on /home type reiserfs (rw) /dev/mapper/vg01-tmp on /tmp type reiserfs (rw) /dev/mapper/vg01-var on /var type reiserfs (rw)

# df -hT Sys. de fich. Type Tail. Occ. Disp. %Occ. Monté sur /dev/mapper/vg01-root reiserfs 3,8G 856M 2,9G 23% / tmpfs tmpfs 4,0G 0 4,0G 0% /lib/init/rw udev tmpfs 10M 808K 9,3M 8% /dev tmpfs tmpfs 4,0G 0 4,0G 0% /dev/shm /dev/md0 ext2 89M 30M 55M 36% /boot /dev/mapper/vg01-datas reiserfs 70G 48G 23G 69% /datas /dev/mapper/vg01-home reiserfs 952M 164M 789M 18% /home /dev/mapper/vg01-tmp reiserfs 3,8G 33M 3,7G 1% /tmp /dev/mapper/vg01-var reiserfs 3,8G 654M 3,1G 18% /var

# ls -alh /boot/ total 28M drwxr-xr-x 4 root root 1,0K janv. 21 14:50 . drwxr-xr-x 25 root root 720 avril 15 2011 .. -rw-r--r-- 1 root root 90K juin 21 2010 config-2.6.26-2-686 -rw-r--r-- 1 root root 84K nov. 25 2010 config-2.6.26-2-amd64 drwxr-xr-x 3 root root 4,0K janv. 22 11:54 grub -rw-r--r-- 1 root root 7,0M juil. 5 2010 initrd.img-2.6.26-2-686 -rw-r--r-- 1 root root 7,7M janv. 21 14:50 initrd.img-2.6.26-2-amd64 -rw-r--r-- 1 root root 7,5M janv. 4 2011 initrd.img-2.6.26-2-amd64.bak drwxr-xr-x 2 root root 12K juil. 5 2010 lost+found -rw-r--r-- 1 root root 908K juin 21 2010 System.map-2.6.26-2-686 -rw-r--r-- 1 root root 1,2M nov. 25 2010 System.map-2.6.26-2-amd64 -rw-r--r-- 1 root root 1,5M juin 21 2010 vmlinuz-2.6.26-2-686 -rw-r--r-- 1 root root 1,7M nov. 25 2010 vmlinuz-2.6.26-2-amd64

[quote]Si /boot a été perdu à cause de la défaillance de /dev/sda, tu pourrais le recréer en /dev/sdb.
Est-ce que tu pourrais remplacer le disque défaillant ?[/quote]
Oui j’ai bien prévu de le remplacer. Mais je sais que si j’arrête la machine (qui n’est pas hotplug), il ne redémarrera pas… c’est pour ça que j’essaie de corriger l’erreur tant qu’il n’est pas éteint.

[quote]
Qu’en est-il de RAID (type, /boot, UUUU, UU_U, U__U )? [mono]cat /proc/mdstat[/mono][/quote]
C’est un RAID1 mirroring. le /boot est sur md0. Après le crash de /dev/sda, j’ai retiré /dev/sda de /dev/md0 et /dev/md1.

[code]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[0]
100000000 blocks [2/1] [U_]

md0 : active raid1 sdb1[0]
96256 blocks [2/1] [U_]

unused devices:
[/code]

[quote]
Qu’en est-il de LVM ? [mono]lvs;pvs;vgs[/mono]
[mono]lvs[/mono](lv:logical volume)
[mono]pvs[/mono] (pv :physical volume)
[mono]vgs[/mono] (vg : volume group)
Comment se combinent RAID et LVM ?
RAID sur LVM ?[/quote]
Justement, même dans les lors des commandes display de LVM il me balance des erreurs sur le /dev/sda alors qu’il est sur un RAID… je ne comprend pas.

[code]# pvdisplay
/dev/sda: read failed after 0 of 4096 at 0: Erreur d’entrée/sortie
Incorrect metadata area header checksum
/dev/sda1: read failed after 0 of 2048 at 0: Erreur d’entrée/sortie
/dev/sda2: read failed after 0 of 2048 at 0: Erreur d’entrée/sortie
/dev/sda: read failed after 0 of 4096 at 150039822336: Erreur d’entrée/sortie
/dev/sda: read failed after 0 of 4096 at 150039937024: Erreur d’entrée/sortie
/dev/sda: read failed after 0 of 4096 at 4096: Erreur d’entrée/sortie
/dev/sda1: read failed after 0 of 512 at 98566144: Erreur d’entrée/sortie
/dev/sda1: read failed after 0 of 512 at 98660352: Erreur d’entrée/sortie
/dev/sda1: read failed after 0 of 512 at 0: Erreur d’entrée/sortie
/dev/sda1: read failed after 0 of 512 at 4096: Erreur d’entrée/sortie
/dev/sda2: read failed after 0 of 512 at 149938503680: Erreur d’entrée/sortie
/dev/sda2: read failed after 0 of 512 at 149938618368: Erreur d’entrée/sortie
/dev/sda2: read failed after 0 of 512 at 0: Erreur d’entrée/sortie
/dev/sda2: read failed after 0 of 512 at 4096: Erreur d’entrée/sortie
— Physical volume —
PV Name /dev/md1
VG Name vg01
PV Size 100,00 GiB / not usable 4,00 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 25599
Free PE 2198
Allocated PE 23401
PV UUID eiSdzo-fvdz-p3qw-e9MV-Ubty-Crmc-2TH4gc

“/dev/md0” is a new physical volume of “94,00 MiB”
— NEW Physical volume —
PV Name /dev/md0
VG Name
PV Size 94,00 MiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID hlkJ5d-LepQ-83pc-L5o1-OMAY-JZyg-Vx3DkO
[/code]

# vgdisplay /dev/sda: read failed after 0 of 4096 at 0: Erreur d'entrée/sortie Incorrect metadata area header checksum /dev/sda1: read failed after 0 of 2048 at 0: Erreur d'entrée/sortie /dev/sda2: read failed after 0 of 2048 at 0: Erreur d'entrée/sortie --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 18 VG Access read/write VG Status resizable MAX LV 0 Cur LV 6 Open LV 6 Max PV 0 Cur PV 1 Act PV 1 VG Size 100,00 GiB PE Size 4,00 MiB Total PE 25599 Alloc PE / Size 23401 / 91,41 GiB Free PE / Size 2198 / 8,59 GiB VG UUID Dc8eza-olES-Cwav-fCoB-hGsG-Fqui-HGnTOj

[code]# lvdisplay
/dev/sda: read failed after 0 of 4096 at 0: Erreur d’entrée/sortie
Incorrect metadata area header checksum
/dev/sda1: read failed after 0 of 2048 at 0: Erreur d’entrée/sortie
/dev/sda2: read failed after 0 of 2048 at 0: Erreur d’entrée/sortie
— Logical volume —
LV Name /dev/vg01/home
VG Name vg01
LV UUID Km9BAP-0U8K-52ZB-g0SH-cH4y-bz03-PYPxoA
LV Write Access read/write
LV Status available

open 2

LV Size 9,31 GiB
Current LE 2384
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:0

— Logical volume —
LV Name /dev/vg01/var
VG Name vg01
LV UUID IAxbk8-g34z-KWVa-f1Bz-ZMDM-Qyl8-SSo1SD
LV Write Access read/write
LV Status available

open 2

LV Size 3,72 GiB
Current LE 953
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:1

— Logical volume —
LV Name /dev/vg01/tmp
VG Name vg01
LV UUID SUEAc2-N2qV-769K-yKxg-JS3v-MAaj-f8R57w
LV Write Access read/write
LV Status available

open 2

LV Size 3,72 GiB
Current LE 953
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:2

— Logical volume —
LV Name /dev/vg01/swap
VG Name vg01
LV UUID 1ihS0U-G4I1-5mdE-U2oi-xYAS-CyHm-fXzkkO
LV Write Access read/write
LV Status available

open 2

LV Size 952,00 MiB
Current LE 238
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:3

— Logical volume —
LV Name /dev/vg01/root
VG Name vg01
LV UUID jxewpf-lFei-0CkI-2Z4z-8yEO-QWMt-1XN8vW
LV Write Access read/write
LV Status available

open 2

LV Size 3,72 GiB
Current LE 953
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:4

— Logical volume —
LV Name /dev/vg01/datas
VG Name vg01
LV UUID OYkblX-FRgC-2Qex-L9FN-Fd72-TWxh-46XK9Z
LV Write Access read/write
LV Status available

open 2

LV Size 70,00 GiB
Current LE 17920
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:5
    [/code]

[quote]Un fil traitant d’un problème approchant :
debian-fr.org/probleme-grub … 50566.html[/quote]
Merci de ton aide, sincèrement.

[quote=“ben_raven”]Salut, je te remercie de ta réponse.
Je connais très bien la virtualisation, particulièrement avec VirtualBox. Cependant je n’ai pas cette possibilité sur ce site. Il me faut vraiment un moyen de réinstaller grub…

Merci qd même. [/quote]

Bonsoir,

C’était juste une piste pour pouvoir mettre ton serveur prod “hors ligne” pour le soigner tout en assurant le service.
C’est vrai qu’il faut pouvoir disposer d’une machine de spare pour jouer cette solution, quel que soit le choix de la solution de virtualisation.
Bon courage.

[quote=“spourre”][quote=“ben_raven”]Salut, je te remercie de ta réponse.
Je connais très bien la virtualisation, particulièrement avec VirtualBox. Cependant je n’ai pas cette possibilité sur ce site. Il me faut vraiment un moyen de réinstaller grub…

Merci qd même. [/quote]

Bonsoir,

C’était juste une piste pour pouvoir mettre ton serveur prod “hors ligne” pour le soigner tout en assurant le service.
C’est vrai qu’il faut pouvoir disposer d’une machine de spare pour jouer cette solution, quel que soit le choix de la solution de virtualisation.
Bon courage.[/quote]

Ce sera ma solution de repli c’est certains. Mais je veux tout faire pour ne pas en arriver là. Merci.