Récupération d'un système Linux
Un kernel panic
peut arriver au démarrage par exemple si une machine virtuelle est brutalement coupé de ses fichiers du à une coupure SAN. Dans notre cas, le système de fichiers est complètement corrompu et logiquement la partition qui contient le kernel aussi.
Solution 1
Solution 2
Procédure Arrêter brutalement la machine avec un jolie bouton rouge.
Pour booter sur le CD, il faudra peut-être passer par le BIOS pour booter d’abord sur le CD avant le disque dur.
Après appuie sur la touche F2, mettre l’option du haut en fonction de l’architecture du système. (32 bits = rescuecd, 64 bits = rescue64).
Pour afficher les disques visibles sur le système.
fdisk -l
Visualiser les montages effectués.
mount
Démonter avec umount les volumes à vérifier.
Prendre le premier volume (ici la partition de /boot
) et le vérifier avec la commande e2fsck.
e2fsck -f /dev/sda1
Cette commande vérifie l’intégrité du système de fichiers. L’option -f l’oblige à checker la partition même si elle semble propre. 5 phases se déroulent. Si aucun message d’erreur ne s’affiche, le système de fichiers doit fonctionner.
Avec l’option -y Passons maintenant au volume racine du système Red Hat. C’est ce volume qui a le plus de chance d’être cassé. Pour éviter d’avoir à donner une réponse pour chaque fichier, on peut lui spécifier de répondre oui à chacune de ces interrogations (c’est le –y). Cette commande n’est pas à faire si on veut avoir la maitrise du processus.
e2fsck -f -y /dev/rootvg/rootlv
Pour vérifier qu’on est bon est que tous les tests sont passés.
e2fsck -f /dev/rootvg/rootlv
Sans l’option -y J’ai fait le test sans l’option -y pour être sûr de ce que cela fait. Avec la commande sans le -y, des demandes de réparation sont affichées pour chaque bloc. Cf. les 5 screenshots suivants pour voir ce que j’ai réalisé et ce que ca donne.
On nous demande si on veut réparer. C’est ce que nous voulons. Il est très verbeux parce que rien est à sa place !
Viens ensuite un message nous demandant de mettre les fichiers à 0. Dans ma première passe, j’ai mis yes aux fichiers de /root car ils sont moins important. Ils peuvent être perdus et ils sont sauvegardés ailleurs.
Mais, arrivé aux fichiers importants comme dans /lib/modules, par sécurité, j’ai mis non pour les mises à zero des fichiers.
A force de maintenir la touche non, j’ai mis non aux dernières valeurs auxquelles il fallait que je mette yes.
Pour être sur que le fait de mettre yes de partout ne détruit pas les fichiers, j’ai relancé la commande suivante.
e2fsck -f -y /dev/rootvg/rootlv
Tout à été mis à yes et aucun des fichiers n’a été supprimés. Le système de fichiers a été nettoyé. J’ai revérifié avec la commande suivante pour être sûr de l’absence de messages d’erreurs.
e2fsck -f /dev/rootvg/rootlv
Au final pour la racine, utiliser le –y en premier mais refaire un check sans après.
Même manipulation avec les autres volumes.
e2fsck -f /dev/rootvg/usrlv e2fsck -f /dev/rootvg/tmplv e2fsck -f /dev/rootvg/varlv
Si une partition de données est présente, la checker aussi. Elle devait être montée lorsque la coupure s’est produite. Elle est surement en LVM.
e2fsck -f /dev/data/data ou e2fsck -f /dev/datavg/datalv
Ensuite les opérations de maintenance sont terminées. Arrêter le SRCD et l’enlever du démarrage de la même manière que vous l’avez mis.
Il faut redémarrer le système qui était abîmé. Il doit rebooter normalement.
Surveiller le boot du système et si une option de vérification apparaît, (appuyer sur la touche Y), faîtes-la.
Après on a un système fonctionnel. On espère juste que la panne ne revienne pas dans les prochains jours…
Cas d’un volume LVM endommagé ! http://kbase.redhat.com/faq/FAQ_96_11472.shtm
Dans un shell lvm :
# lvm # pvsan # vgscan # lvscan # vgchange -ay # exit # e2fsck /dev/datavg/datalv