Comment réinstaller lilo à partir
d'une disquette de
secours ?

(Écrit en orthographe recommandée. Voir note en bas de page)


Bon (si on peut dire), vous ne pouvez plus démarrer Linux. Lilo (ou grub) n'est plus là ; ou alors il est là, mais il refuse de se lancer (LIL.). Bref, c'est la cata ! Plusieurs raisons : vous avez réinstallé Windows (95, 98 ou Me) qui a délicatement écrasé le MBR où était installé lilo ou grub. (Il parait que XP est plus précautionneux, mais pour éviter ça, activez la protection antivirus de votre BIOS: il interdira l'écriture sur le MBR), vous avez déplacé des partitions,... Deux cas à envisager :

  1. Vous pouvez redémarrer votre Linux avec une disquette de démarrage :-)

  2. Vous ne pouvez pas :-(

  1. Vous pouvez redémarrez votre Linux avec une disquette de démarrage:

Dans ce cas, vous n'avez qu'à vous loguer sous root et réinstaller le chargeur de démarrage (bootloader) lilo sur votre disque dur avec la commande lilo. Si votre fichier /etc/lilo.conf est bon, vous ne devrez pas avoir de message d'erreur et pas de problème au redémarrage.

    2.  Vous ne pouvez pas redémarrer votre linux avec la disquette de démarrage
Là, ça se complique un peu. Votre linux "principal", c'est à dire celui qui est installé sur votre disque dur ne veut rien savoir. Il vous faut réinstaller le chargeur de démarrage "lilo" à l'aide d'un système qui fonctionne.

 Par exemple le CD Démolinux de Roberto Di Cosmo (qui m'a permis de récupérer une fois mon système -merci Roberto) ou le CD Knoppix.
 La disquette de secours de Suse a une option "Démarrer le système installé" qui est très pratique et très simple.
Si vous avez un autre système Linux sur votre PC (par exemple une Debian et une Mandriva) et que vous arrivez à en démarrer un, il vous servira pour réinstaller un lilo qui pourra démarrer le second système (celui qui ne démarre pas). Vous me suivez ?
Si vous avez Windows et que vous avez installé loadlin, vous pouvez démarrer Windows si vous avez une disquette de dépannage Windows (comment ça, vous n'en avez pas ? Tâchez de trouver un PC avec Windows pour en fabriquer une) en tapant, sous DOS, la commande fdisk /mbr (n'ayez pas peur, ça ne touchera pas vos partitions). Ça réinstalle un MBR standard pour démarrer Windows. Sous XP, il faut taper fixmbr. Ensuite, vous pourrez vous débrouiller avec loadlin.

Bon, enfin vous avez votre disquette (ou votre CD) de secours ? Démarrez-le. Normalement, vous allez vous trouver aux commandes d'un linux tout petit (mais efficace !) en mode texte (bah, oui, désolé) et logué sous root. Donc attention de ne rien casser en plus.
Vous devez disposer de programmes comme ls, cp, mv, vi (comme éditeur de texte), tar, bzip2,...
D'abord, si vous faites ls /, vous allez retrouver une arborescence, mais c'est celle de votre disquette ! PAS de votre disque dur. Si vous voulez lire votre disque dur, (et particulièrement le fichier lilo.conf) il faudra le monter dans l'arborescence du système de secours. Certains systèmes de secours le font automatiquement, d'autres non. Vous devez savoir sur quelle partition il se trouve. Tapez fdisk -l /dev/xxx (xxx correspond au disque dur: ce peut être hda, hdb, ou sxx pour un scsi) et repérez son nom. Si par exemple, c'est hda6, vous allez créer un point de montage, c'est à dire un répertoire de préférence dans le répertoire /mnt et de préférence avec un nom expressif, (mais vous pourrez l'appeler comme bon vous semblera). Par exemple, vous pouvez utiliser linux_cassé ou bien le nom de la partition (ici hda6)
Pour la suite de l'explication choisissons linux_cassé comme nom.
mkdir /mnt/linux_cassé
Vérifiez en tapant ls /mnt et vous devriez voir une ligne:
/mnt/linux_cassé

Petit rappel, vous avez créé le répertoire linux_cassé (ou /mnt/hda6) dans l'arborescence de votre système de secours, PAS dans celui de votre Linux "principal".
Faites ls /mnt/linux_cassé    Rien! Normal, la partition n'est pas montée (accrochée)
Montez-la avec:
mount /dev/hda6 /mnt/linux_cassé

Maintenant, si vous faites ls /mnt/linux_cassé, vous verrez l'arborescence de votre système linux "principal" (ou habituel si vous préférez), sauf qu'il ne commence pas à /, mais qu'il commence à /mnt/linux_cassé/. À partir de là, vous pouvez vous promener dans son arborescence avec les commandes cd, ls,.. et votre répertoire personnel. Vous pourrez donc lire le répertoire de l'utilisateur "toto" en faisant:
ls /mnt/linux_cassé/home/toto/        D'habitude, vous auriez fait ls /home/toto/
Vous pourrez aussi lire les répertoires perso des autres utilisateurs! Normal, vous êtes logué sous root...
On pourra trouver que c'est un peu déroutant de chercher /home/toto/ dans /mnt/linux_cassé/home/toto/ ; on peut utiliser alors la commande chroot (changer le répertoire racine). Tapez chroot /mnt/linux_cassé et alors vous aurez votre /home/toto/ en tapant ls /home/toto/
Bien sûr, si le répertoire /home est sur une partition séparée (ce qui est une bonne chose), par exemple hda8, il faudra aussi la monter pour pouvoir la lire en faisant :
mount /dev/hda8  /mnt/linux_cassé/home/

Revenons à notre lilo. Vous devez l'avoir sur votre système de secours (sinon, c'est pas la peine...). Il est configuré par défaut pour installer le chargeur de démarrage en fonction des indications qui sont écrites dans le fichier lilo.conf, et ce fichier est dans le répertoire /etc. Donc, en temps normal, pas de problème. Mais là, vous êtes sur le système de secours, et si vous tapez la commande lilo, il va chercher le /etc/lilo.conf qui n'existe surement pas, et qui de toute façon ne sera pas celui qui est sur votre disque dur. Le bon lilo.conf, il est là :
/mnt/linux_cassé/etc/lilo.conf
Vous pouvez le lire avec :
less /mnt/linux_cassé/etc/lilo.conf
ou l'éditer avec vi (faites une copie avant !)
Donc, maintenant, comment dire à la commande lilo de lire le lilo.conf en question pour s'exécuter correctement ? Deux possibilités :

  1. Utilisez la commande chroot comme tout à l'heure

 chroot /mnt/linux_cassé
lilo

     2. Utilisez directement la commande lilo, mais en lui précisant (grâce à l'option -r) de prendre un lilo.conf situé ailleurs que dans /etc

 (qui est le chemin par défaut). (D'après le man, lilo effectue lui-même un chroot avant de faire sa manoeuvre). Dans notre exemple, il faut faire :
lilo -r /mnt/linux_cassé/

Si il n'y a pas de message d'erreurs, c'est bon.
Vous allez pouvoir rebouter pour vérifier que ça démarre, mais avant, il vous FAUT DÉMONTER la(les) partition(s) (le système "principal" le fait automatiquement, le système de secours pas toujours)
Faites umount /mnt/linux_cassé
et reboot. (et croisez les doigts)

Added linux-Mandrake *
Added linux-Suse
Added linux-Red-Hat
Added linux-Debian
Added windows

Explications : c'est un PC où il y a  quatre versions de Linux (!) et un Windows. Le * indique que lilo est paramétré pour démarrer linux-Mandrake par défaut.
Au démarrage, l'invite lilo vous proposera ces cinq entrées. Elles sont écrites dans le fichier /etc/lilo.conf
boot=/dev/fd0        -->lilo va s'installer sur une disquette (fd0)
boot=/dev/hda6     --> lilo va s'installer sur la partition hda6 (deuxième partition logique du premier disque                                            dur)
boot=/dev/hdb       --> lilo va s'installer sur le MBR du deuxième disque dur (hdb)
boot=/dev/hda        --> lilo va s'installer sur le MBR du premier disque dur (hda)

Vous l'avez sans doute deviné, c'est la dernière ligne (boot=/dev/hda) qu'il faudra mettre en début de votre fichier /etc/lilo.conf


Ensuite, vous pourrez apprendre à utiliser l'autre chargeur de démarrage: le grub. Il vous permettra de vous sortir de ce genre de problème encore plus facilement. En effet, si les menus de démarrage ne fonctionnent plus, vous vous retrouvez face à un shell (avec auto-complètement!) qui vous permettra de démarrer le système de votre DD


Cet article est soumis à la licence LGPL. Vous pouvez le copier et le diffuser comme bon vous semble à condition de ne pas l'altérer et de laisser intacte la présente notice. Il a été écrit avec l'aide de plusieurs membres de la communauté du logiciel libre que je remercie au passage.

Des erreurs, des suggestions ? écrivez-moi. Voir mon adresse ici http://astuce.linux.free.fr/index.html


Mis à jour le 23 novembre 2004 Claude MICOUIN


logo orthographe recommandée

N.B. L'Académie française a approuvé à l'unanimité un certain nombre de rectifications.
Ces rectifications sont désormais inscrites dans les programmes du ministère français de l'éducation nationale (BO n°5 du 12 avril 2007).
Pour en savoir plus http://www.orthographe-recommandee.info/

Attention ! Ces rectifications ne sont PAS de simples tolérances, mais fixent la NOUVELLE orthographe de certains mots.