Rescue mode EeePC

De Lea Linux
Révision datée du 28 avril 2012 à 16:16 par Jiel (discussion | contributions) (balises code)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche


Le mode « rescue » ou « single user » de l'EeePC

Le mode rescue permet de démarrer l'EeePC en mode texte avec un Shell, pour essayer de réparer une erreur précédente qui empêche l'EeePC de démarrer correctement. Les symptômes sont en général un reboot sans fin, KDE qui refuse de démarrer, se relance et boucle, etc.

En général, le « mode rescue » ou « failsafe » ou « sans échec » se nomme « single user » sous Linux, car c'est un mode de démarrage de Linux qui ne permet qu'à l'utilisateur root (l'administrateur) de se connecter, afin de faire de la maintenance (réparations...).

Note : attention dans ce mode le clavier sera en QWERTY, ce qui signifie que vous aurez sûrement à tatonner pour trouver la correspondance avec votre clavier AZERTY, surtout pour les caractères "spéciaux"... Par exemple la touche A donne "Q", Maj+1 donne "!", etc. Voir cette table de correspondance sur Wikipédia.

Démarrer manuellement en mode single user

  1. arrêtez votre EeePC. Dans certains cas, il peut être nécessaire de le débrancher et de retirer la batterie.
  2. rallumez-le et appuyez de façon répétée sur la touche F9, jusqu'à ce que le menu de démarrage suivant apparaisse :
    +---------------------------------
    | Normal boot                     
    | Perform disk scan               
    | Restore factory settings        
    |                                 

    Par défaut, "Normal boot" est sélectionné. Si ce n'est pas le cas utilisez les flèches du clavier pour le sélectionner.
  3. Tapez la touche E afin d'éditer la ligne de commande du démarrage. Vous devez voir les lignes suivantes :
    title Normal Boot
    root (0×80,0)
    kernel /boot/vmlinuz-2.6.21.1-eeepc quiet rw irqpoll root=/dev/sda1
    initrd /boot/initramfs-eeepc.img
  4. Placez-vous avec les flèches sur la ligne qui commence par "kernel /boot/vmlinuz"
  5. Tapez à nouveau la touche E afin d'éditer cette ligne
  6. Vous devriez être dans une zone d'édition, avec le curseur placé à la fin de la ligne. Ajoutez un espace puis "XANDROSBOOTDEBUG=y"
  7. Validez en appuyant sur Entrée.
    Note :ce changement n'est pas permanent.
  8. Appuyez sur la touche B (comme "boot") pour démarrer l'EeePC.

Vous êtes maintenant dans une console, connecté avec l'utilisateur root (administrateur), où vous pouvez passer les commandes classiques du Shell. Cependant, le disque dur n'est pas disponible (monté), ni la partie système, ni la partie utilisateur. Voir les paragraphes suivants pour son plus d'explications sur l'utilisation de ce mode.

Installation permanente du mode single user

L'installation consiste à démarrer manuellement dans le mode rescue (voir ci-dessus), puis à l'installer pour de bon dans le menu de démarrage, géré par le logiciel Grub.

Nous allons donc créer une nouvelle entrée dans le menu de démarrage, afin de ne plus avoir à répéter toutes ces manipulations la prochaine fois. À la fin de nos manipulations, le menu de démarrage accessible par F9 sera le suivant :

+---------------------------------
| Normal boot                     
| Single user                      <- ici la nouvelle ligne
| Perform disk scan               
| Restore factory settings        
|                                 

Nous avons démarré en mode rescue (sinon recommencez les étapes précédentes), et allons modifier le fichier qui régit le menu de démarrage. Dans un système Linux normal, celui-ci se trouve là : /boot/grub/menu.lst.

Cependant, l'EeePC a un type de montage du disque dur particulier (qui permet de revenir à la configuration d'usine en choisissant l'entrée de menu "Restore factory settings"). Il est composé de 2 partitions, l'une contenant le système tel qu'il a été livré par Asus, l'autre contenant toutes les modifications qui ont été faites depuis (mises à jour, fichiers utilisateur, etc.). Lorsque vous démarrez en mode normal, ces 2 partitions sont montées d'une façon spéciale (nommée "unionfs") et se superposent, avec priorité pour les fichiers présents dans la 2ème partition.

Solution directe pour ceux qui n'ont peur de rien (et pas de vi)

(et surtout pour ceux qui ne peuvent plus démarrer en mode normal)

Nous ne pouvons pas modifier le fichier menu.lst directement en mode Easy de l'EeePC, car les modifications iraient dans la deuxième partition, qui n'est pas accessible par le gestionnaire de démarrage Grub.

Nous allons donc monter uniquement la partition n°1 par la commande :

# mount /dev/sda1 /mnt-system

puis y modifier le fichier qui se trouve donc dans /mnt-system/boot/grub/menu.lst. Pour ce faire, nous devons utiliser un éditeur en mode texte, le seul disponible en mode Single user, qui se nomme vi :

# vi /mnt-system/boot/grub/menu.lst

Je vous conseille la lecture de l'article vi pour savoir comment l'utiliser, car si c'est votre première fois, vous risquez d'être perdu dans cet éditeur très spécial. Sachez que pour quitter, il vous faut taper : w q pour sortir en sauvegardant et : q ! pour sortir sans sauver.

Copiez la première entrée de menu, et changez uniquement son titre (title) et l'option de ligne de commande (ajoutez "XANDROSBOOTDEBUG=y"). Les autres informations peuvent différer de ce qu'il y a ci-dessous, ce n'est pas grave. Ne faites aucun autre changement.

title Single user
      root (0x80,0)
      kernel /boot/vmlinuz-2.6.21.1-eeepc quiet rw irqpoll root=/dev/sda1 XANDROSBOOTDEBUG=y
      initrd /boot/initramfs-eeepc.img

Si vous n'avez pas envie de lire l'article vi, alors les pressions de touche à suivre scrupuleusement pour faire la copie sont :

  • Esc 5 Maj+Y haut Maj+P ("Y" et "P" en majuscule, d'où Maj et Y ou P en même temps),
  • déplacez-vous vers le bas sur la ligne "title" en pressant 4 fois bas afin d'éditer la deuxième entrée de menu,
  • puis allez à la fin de la ligne "title" en tapant $,
  • puis x le nombre de fois suffisant pour qu'il ne reste que "title " sur la ligne.
  • Tapez Maj+A pour passer en mode édition à la fin de la ligne,
  • tapez "Single user",
  • puis Esc pour quitter le mode édition.
  • Tapez deux fois Bas pour vous retrouver sur la ligne "kernel",
  • puis $,
  • puis Maj+A,
  • espace et "XANDROSBOOTDEBUG=y".
  • Enfin Esc pour quitter le mode édition.
  • : w q permet de sortir en sauvant les modifications ; si vous voulez recommencer depuis le début et quitter sans sauver, faites : q !. (Ca fait un peu peur, mais quand on est habitué, on s'y fait vite, et vi devient un outil très puissant ;-)

Si tout s'est bien passé, vous pouvez :

  • démonter la partition (pour s'assurer que tout va bien être écrit dessus) :
    # umount /mnt-system
  • redémarrer par Ctrl+Alt+Suppr, et tester votre nouvelle entrée de menu "Single user" en tapant sur F9 comme expliqué au début de l'article.

Solution simple pour les débutants

Si vous pouvez redémarrer dans le mode Easy (ou avancé) de l'EeePC, i.e. si vous n'êtes pas ici car votre EeePC ne veut plus démarrer ;-) alors vous pouvez copier le fichier /boot/grub/menu.lst dans votre répertoire utilisateur : /home/user/menu.lst et le modifier avec votre éditeur de texte préféré.

Copiez/collez l'entrée de menu "Normal boot" :

title Normal Boot
      root (0×80,0)
      kernel /boot/vmlinuz-2.6.21.1-eeepc quiet rw irqpoll root=/dev/sda1
      initrd /boot/initramfs-eeepc.img

Puis modifiez-là en :

title Single user
      root (0x80,0)
      kernel /boot/vmlinuz-2.6.21.1-eeepc quiet rw irqpoll root=/dev/sda1 XANDROSBOOTDEBUG=y
      initrd /boot/initramfs-eeepc.img

Ne changez que le title, et ajoutez "XANDROSBOOTDEBUG=y".

Ensuite redémarrez en mode single user (voir ci-dessus), montez les systèmes de fichier :

# mount /dev/sda1 /mnt-system
# mount /dev/sda2 /mnt-user

puis copiez le fichier modifié au bon endroit par la commande :

# cp /mnt-user/home/user/menu.lst /mnt-system/boot/grub

Voilà ! Vous pouvez :

  • démonter les partitions (pour s'assurer que tout va bien être écrit dessus) :
# umount /mnt-system
# umount /mnt-user
  • redémarrer par Ctrl+Alt+Suppr, et tester votre nouvelle entrée de menu "Single user" en tapant sur F9 comme expliqué au début de l'article.

Utiliser le "rescue mode"

Si vous en avez besoin, c'est que vous avez sûrement fait une fausse manipulation. Vous devez bien savoir où se trouve le fichier que vous avez modifié ;-) Dans ce cas, il faudra le retrouver et revenir à la version précédente (bien sûr vous faites des sauvegardes systématiques des fichiers de configuration, avant de les modifier ? ;-)

Déjà, pour utiliser ce mode texte, semblable à la console qu'on lance par Ctrl+Alt+T, il vous faut des notions de Shell. Je vous renvoie donc à cet article.

Ensuite, il vous faut comprendre le principe de partitionnement de l'EeePC : j'ai nommé UnionFS. Pour faire court, votre disque interne est découpé en 2 partitions. L'une (/dev/sda1) qui contient le système tel qu'installé par Asus en sortie d'usine, l'autre (/dev/sda2) contenant toutes les modifications apportées par l'utilisateur. UnionFS est un mode de montage des partitions qui permet de les fusionner afin de n'en voir qu'une seule. Ainsi, pour revenir à la configuration d'usine, il suffit de supprimer la deuxième partition. C'est ce que fait l'entrée de menu "Restore factory settings".

Enfin, lorsque vous démarrez en mode single user, aucune des 2 partitions n'est montée. Vous vous trouvez dans la racine du système /.

Pour accéder à vos fichiers, il faut "monter" les partitions, i.e. attacher leur contenu à un répertoire. Pour ce faire entrez les 2 commandes suivantes :

# mount /dev/sda1 /mnt-system
# mount /dev/sda2 /mnt-user

Dans chacun des répertoires /mnt-system et /mnt-user, vous pourrez voir un ensemble de répertoire semblables à ceux qu'on trouve à la racine de n'importe quel système Linux. La magie de UnionFS est de les fusionner et de n'en laisser apparaître qu'un.

En général donc, vos modifications seront dans /mnt-user où vous devrez trouver et corriger le problème qui empêche l'EeePC de démarrer.

Par exemple, si vous aviez modifié /usr/bin/startsimple.sh (fichier contenant des commandes exécutées au démarrage de l'interface graphique), utilisez la commande suivante pour l'éditer :

# vi /mnt-user/usr/bin/startsimple.sh

ou bien la commande cp pour restaurer le backup de ce fichier que vous avez pris soin de faire avant vos modifications, par exemple :

# cp /mnt-user/home/user/mesBackups/startsimple.sh /mnt-user/usr/bin/startsimple.sh

A la fin de vos modifications, avant de redémarrer par Ctrl+Alt+Suppr, vous devez démonter les partitions avec les 2 commandes suivantes :

# umount /mnt-system
# umount /mnt-user

Cela permettra de s'assurer que toutes les modifications sont bien écrites sur le disque interne (et que rien ne reste bloqué dans un cache).

autre exemple

Lors de l'écriture de l'article [Empêcher la détection automatique des périphériques USB et de la carte SD au démarrage de l'EeePC], j'ai eu un problème : après avoir renommé le programme /usr/bin/xandros_device_detection_dialog en /usr/bin/xandros_device_detection_dialog.orig, celui-ci ne voulait plus fonctionner (il plantait en faisant un "segmentation fault" lorsqu'on le lançait ; ceci peut se voir en ligne de commande).

J'ai eu beau lui rendre son nom original, rien à faire : il plantait toujours.

La seule solution ? le mode rescue, pour faire :

# mount /dev/sda1 /mnt-system
# mount /dev/sda2 /mnt-user
# cd /mnt-system/usr/bin
# mv xandros_device_detection_dialog xandros_device_detection_dialog.orig
# cd /mnt-user/usr/bin
# rm xandros_device_detection_dialog.orig
# umount /mnt-system
# umount /mnt-user

Ce qui signifie : dans la partition "système", on renomme l'original du programme en .orig. Dans la partition « utilisateur », on supprime la copie qu'on a faite.



@ Retour à la rubrique Eee PC

Copyright

Copyright © 20/6/2008, Jean-Christophe Cardot

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/



Retour à la page EeePC