Le royaume de Eric Buist >> Informatique >> Configuration informatique
Me contacter Plan du site
<< Suppression de Windows ME et réaménagement de mes partitions Résurrection de Linux Mise à jour à RedHat 7.3 >>

Résurrection de Linux

Première étape: retourner devant le problème afin de l'affronter. Cela se fit en activant, encore avec Partition Magic, la partition Linux devenue défectueuse. J'insérai ensuite dans le graveur, afin de pouvoir l'amorcer, le disque d'installation de RedHat Linux. Une lecture du message de bienvenue me révéla que je pouvais passer en rescue mode avec la commande linux rescue, cela se mit à loader et je craignais qu'il ne se mette à charger une superbement complexe et inutile interface graphique, mais non, tout se fit sans problèmes, à part qu'un virtual framebuffer fut activé et je me retrouvai avec une console avec une fonte un peu trop petite. Toutefois, ça ferait l'affaire pour ce petit travail.

Le système m'indiquait que mon Linux était monté dans /mnt/sysimage. La première étape de la technique consistait à savoir où LILO devait localiser la partition racine de Linux. Une telle partition contient généralement le kernel, mais dans tous les cas, elle est montée dans /. Je tentai d'obtenir cette information avec df, mais il ne me révéla que les points de montage, pas les disques.

Il me fallait donc une commande capable de lister les partitions du disque, et cela à la Linux. Je pensai alors à fdisk que j'activai. L'utilitaire demandait des paramètres, je ne savais pas trop quoi lui mettre. En tapant fdsk -h, j'obtins un peu plus d'aide et je découvris que taper fdisk -l /dev/hda me livrerait l'information attendue.

Disk /dev/hda: 255 heads, 63 sectors, 3722 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda2             1      1275  10241406    7  HPFS/NTFS
/dev/hda3   *      1276      2533  10104885   83  Linux
/dev/hda4          2534      3722   9550642+   f  Win95 Ext'd (LBA)
/dev/hda5          2534      2550    136521   82  Linux swap
/dev/hda6          2551      3722   9414058+   b  Win95 FAT32

Grâce à cette commande, j'appris que Linux se trouvait désormais sur /dev/hda3, restait à apprendre ça à LILO et à INIT qui devraient respectivement monter la partition racine en lecture seule et ensuite la remonter en lecture/écriture.

Je tapai, sachant bien que emacs ne fonctionnerait pas, vi /mnt/sysimage/etc/fstab. Mais l'éditeur ne voulait en aucun cas bien fonctionner et je finis par le quitter, la touche Insert ne faisant qu'émettre un beep et non passer en insertion mode. Je me rendis compte, d'après le son du lecteur de CD, que /mnt/sysimage ne constituait même pas ma partition Linux sur disque dur. Je dus taper deux commandes pour remédier, soit mkdir /mnt/my puis enfin mount -t ext2 /dev/hda3 /mnt/my, ce qui monta, dans /mnt/my la partition malade. Il n'y eut aucune difficulté à le faire et je pus alors accéder à /mnt/my/etc/fstab, encore avec vi. Mais l'éditeur ne fonctionnait toujours pas bien.

J'avoue que plusieurs me trouveront un peu novice, mais là, pas bien le choix: j'utilisai Pico! Ce petit éditeur élémentaire me permit toutefois de travailler sur les fichiers. Je retirai alors la ligne montant ma partition ME dans Linux, ce n'était pas elle qui faisait tout boguer, mais ça me sauverait un message d'erreur. Mais je ne trouvais rien se référant à /, je me rendis alors compte que ce système était monté de façon implicite et la spécification de sa partition ne se trouvait que sous LILO.

N'osant pas démarrer l'installation de LILO dans ce rescue mode, je décidai de taper exit, retirer le CD puis redémarrer. LILO s'afficha après quelques secondes, j'appuyai sur CTRL-X pour passer en mode texte puis je tapai la formule magique: linux root=hda3. Eh oui, une option passée au kernel Linux! Aussi simple que ça! L'option root allait indiquer au noyau quel système monter dans / et INIT pourrait être amorcé.

Malheureusement, cela ne fonctionna pas, un nouveau Kernel Panic fut le maigre résultat de mes efforts! Ah oui, avant d'oublier, à quoi aura servi le rescue mode? Eh bien à m'éviter de tâtonner et tomber du premier coup sur la bonne partition à monter. Je rebootai, avec reset car c'était gelé ben dur, et je retournai sous LILO. En mode texte, je tapai alors linux root=/dev/hda3. Le kernel reprit pour la troisième fois depuis le bogue sa séquence d'amorçage, puis INIT embarqua! Après quelques secondes, je me rendis compte que je me trouvais sous Linux, j'avais réussi à lui redonner la vie!

Restait maintenant à reconfigurer LILO afin que l'amorçage soit automatique. Linuxconf ne m'offrait apparemment pas de menu pour le faire et plutôt que chercher partout, je décidai de tenter de modifeir à la mitaine le fichier /etc/lilo.conf. Il ne faut pas oublier, après chaque modification, d'appeler la commande /sbin/lilo afin de réinstaller le LInux LOader, sinon ça n'aurait aucun effet! En tapant man lilo.conf, je découvris comment configurer ça. Il me fallait ajouter une ligne other=/dev/hda2 afin de pouvoir booter sous Windows. Juste après cette ligne, il fallait mettre label=winxp pour donner un nom à ce nouvel amorçage. Troisième modification: changer le nom de la partition root pour l'appeler /dev/hda3 plutôt que /dev/hda4. Voilà, c'était prêt: je réinstallai LILO, une affaire d'à peine une seconde, puis je rebootai: Kernel Panic! Je dus donc réutiliser la formule magique pour revenir sous Linux. Ne pas oublier que toutes ces modifications systèmes ne se font qu'en mode super-utilisateur (root).

Je me rendis compte avec crainte que j'avais oublié d'indiquer à LILO de s'installer sur /dev/hda3 et non sur /dev/hda4! Un fdisk -l /dev/hda me révéla que le hda4 correspondait à ma partition étendue, dommages possibles sur mes données!!! Je vérifiai dans le point de montage, soit /mnt/data, tout était bien là. OUF! Je rectifiai /etc/lilo.conf, avec Emacs cette fois, afin de modifier la ligne boot=/dev/hda3. En fait la seule fois où j'ai édité avec Pico, c'était en rescue mode. Et à bien y penser, peut-être Emacs aurait marché... Je réinstallai LILO puis je rebootai, miracle! Ça marchait! Je redémarrai puis je sélectionnai la partition Windows XP, Windows s'amorça sans histoires! Et seule la partition Windows ME (normal!) avait disparu dans l'Explorateur, tout le reste était intact. Pour parfaire le tout, je modifiai la ligne default, indiquant default=winxp. Ainsi, après 30 secondes, si aucun choix n'était effectué, la machine booterait automatiquement sous Windows XP, le système le plus couramment utilisé. Bien que je voudrais qu'il en soit autrement, Linux demeure pour moi, pour le moment, une plate-forme expérimentale de développement, rien de vraiment plus...

En fait, la modification était pas mal simple, suffisait de le savoir. Cela a sauvé Linux sur ma machine, m'évitant une longue et pénible reconfiguration de toute cette bastringue. Linux m'est bien utile pour la programmation, car le compilateur Visual C++ de Microsoft n'est pas standard sur tous les points.

Ainsi, LILO est dès lors le gestionnaire d'amorçage. La partition Linux, active, démarre lorsque mon ordinateur est mis en marche, puis LILO me permet de sélectionner si je veux activer Linux ou Windows XP. Pour le moment, ça fonctionne bien.