Le Guide du ROOTard pour Linux: Catastrophe !
Description: Ce document regroupe l'adaptation d'articles parus dans la Linux-Gazette. Merci à Nat Makarévitch pour ses relectures et Joël Bernier pour la mise en page HTML.
Keywords: Linux, francais, français, france, GNU, FSF, Debian, Redhat, Slackware, Mandrake, kheops, document, documentation, logiciel, libre, informatique, free, software, open, source, sourceware, freeware, soleil, support, assistance, hot line

> Page suivante Page précédente Table des matières ## 15. Catastrophe ! Ce chapitre est dédié aux moments de catastrophe, où rien de marche, et où l'on a envie de tout mettre par la fenêtre... ## 15.1 Corruption de partitions Dans certaines situation (panne électrique, etc.), la table des partitions logiques peut se corrompre. Si c'est votre cas, une solution pour tenter de résoudre le problème consiste à lancer le programme `fdisk` et entrer à la main les limites (Start et End) de chacune des partitions de votre disque. Bien sûr, il est important d'en avoir fait une copie papier au préalable. ## 15.2 Impossible de booter ! Vous venez de rallumer la machine et n'arrivez plus à booter. Dans ce cas, le mieux est d'utiliser les disquettes de boot (celles de la Slackware, ou bien donner l'option rescue avec Red Hat). Une fois la machine amorcée, montez la partition racine et copiez le noyau sur une nouvelle disquette en lançant : `cat /mnt/vmlinuz > /dev/fd0` par exemple. Normalement, ça devrait alors fonctionner si le noyau est correct. Éventuellement, effectuez un :
>     rdev /dev/fd0 /dev/hda2
>     rdev -R /dev/fd0 1
> pour spécifier au noyau quelle partition est la racine du système de fichiers et lui dire de monter celle-ci en lecture seule pour permettre à `fsck` de faire son travail au moment du boot. ## 15.3 Formatage accidentel d'une partition Voilà, vous avez formaté par erreur une partition où se trouvait le rapport de 120 pages à rendre hier. Bon, pas de panique ! Inutile de dire qu'il est impossible de faire un `unformat`. La première solution de récupération (très brutale) est de faire un `strings /dev/hda3 > Recup`. Il reste ensuite à parcourir le fichier et à récupérer ce qu'il est possible de récupérer. Une seconde solution est d'utiliser ce script Perl (voir http://www-eleves.enst-bretagne.fr/~aubert/perl/) :
>     # Auteur : aubert@titan.enst-bretagne.fr
>     #!/usr/local/bin/perl

>     $maxlines = 20;

>     @before = ();
>     $syntaxe = "Syntaxe: cgrep.pl terme_a_rechercher fichier_a_parcourir\n";

>     $terme = shift(@ARGV) || die $syntaxe;
>     $fichier = shift(@ARGV) || die $syntaxe;

>     open(F, $fichier) || die "Cannot read $fichier: $!\n";

>     # On remplit @before jusqu'a sa capacite maximales ($maxlines)
>     while (($_ = <F>) && (scalar(@before) < $maxlines))
>     {
>       if (/$terme/o)
>       {
>         print @before;
>         print $_;
>         & print_next_lines;
>       }
>       push(@before, $_);
>     }
>     # Le tableau @before contient la bonne quantite d'elements, donc on
>     # passe maintenant dans une partie ou @before garde une taille constante
>     while (<F>)
>     {
>       if (/$terme/o)
>       {
>         print @before;
>         print $_;
>         & print_next_lines;
>       }
>       push(@before, $_);
>       shift(@before);
>     }

>     close(F);
>     exit 1;

>     sub print_next_lines
>     {
>       for ($i = 0; $i < $maxlines; $i++)
>       {
>         print scalar(<F>);
>       }
>       exit 0;
>     }
> ## 15.4 Problèmes avec le disque dur : super-bloc Si le super-bloc est vérolé lancer `e2fsck` avec les options suivantes : `e2fsck -b 8193 /dev/sda3`. Si ça ne marche toujours pas, essayer en augmentant le nombre de 8192 à chaque fois pour essayer de récupérer une copie du super-bloc en état. Si ça ne fonctionne toujours pas, essayer de lancer la commande `mke2fs` avec l'option `-S`. Attention à ne pas l'oublier sinon vous reformatez la partition ! Cette option provoque la regénération des copies du superbloc et des descripteurs du système de fichiers. Elle n'écrase pas les fichiers existants. ## 15.5 Problèmes avec le disque dur : blocs défectueux Si le disque a quelques problèmes (secteurs défectueux), vous pouvez récuperer `e2fsck` dans le paquetage `e2fsprogs` version 1.10 si vous ne l'avez pas déjà. Ensuite, bootez sur une disquette si le problème est à la racine ; lancez `badblocks > BLOCKS` ; lancez `e2fsck -f -L BLOCKS -p -y`. ## 15.6 Récupération d'un disque Les instructions qui suivent effectuent une sauvegarde du disque (enfin, de ce qu'il est possible de récupérer), testent la qualité du disque, recréent un système de fichiers en retirant les blocs défectueux et enfin restaurent la sauvegarde.
>        cd /fs
>        find . -depth -mount -print | cpio -ovB > $TAPE
>        cd /
>        tail -f /usr/adm/syslog &
>        umount /fs
>        badblocks -w -o /autre_filesystem/bb_list.tmp /dev/hda3
>        mke2fs -l /autre_filesystem/bb_list.tmp /dev/hda3
>        mount /dev/hda3 /fs
>        dd if=/dev/zero of=/fs/test.tmp
>        rm test.tmp
>        cd /fs
>        cpio -ivBmd < $TAPE
> A partir du `mke2fs`, aucun message d'erreur ne devrait se produire. ## 15.7 fatal signal 11 Certaines machines ne pourront fonctionner convenablement et produiront alors de façon plus ou moins aléatoire un message (par exemple "fatal signal 11", ou "SIGSEGV") puis stopperont brutalement l'exécution du programme actif. Cause la plus probable : problème du matériel (composants de mémoire trop lents, par exemple). Essayer tout d'abord, grâce au "SETUP" de la machine, de ralentir le processeur et/ou le bus, de "débrayer" le cache processeur. Puis diminuer le niveau de PIO de l'EIDE (ne pas dépasser PIO 3). Lire à ce propos le document http://www.linux-france.com/article/sig11-fr/. ## 15.8 Disquette de secours À peu près toutes les distributions proposent des disquettes de secours qui vous permettent au moins d'amorcer la machine et de monter la racine du système de fichiers pour pouvoir y effectuer les réparations nécessaires. Toutefois, signalons la présence d'une disquette assez utile (ce genre de disquette a un nom particulier, "bite et couteau", pour des raisons purement historique), `tomsrtbt`, que l'on peut trouver sur le site http://www.clark.net/~toehser/. Page suivante Page précédente Table des matières