Chroot depuis un liveCD
De Gentoo Linux Wiki.
Sommaire |
[modifier] Introduction
Il peut arriver qu'une installation de Linux soit dans une situation qui l'empêche de démarrer (ça peut être parce qu'un autre OS a remplacé la MBR, ou un problème avec les scripts d'initialisation ou la configuration du noyau).
Le but de ce guide est d'avoir un chroot à partir de n'importe quel livecd (ou d'un autre linux) vous permettant d'analyser et de régler le problème....
[modifier] Limitations
Même si une installation chrootée à partir d'un livecd offre d'excellentes fonctionnalités, elle ne sera pas complète. Par exemple, le système chrooté utilisera toujours le noyau du livecd. Ce qui signifie que tous les modules qui ne sont pas déjà chargés devront l'être avant d'entrer dans le chroot. Pour la même raison, tous les modules seulement disponibles sur le système chrooté ne pourront pas être chargés.
Pour résoudre le problème des pilotes, vous pouvez choisir un livecd qui contient les pilotes dont vous avez besoin, ou alors créez votre propre livecd.
[modifier] Connaissances requises
Ce guide considère que vous connaissez le matériel de votre machine et les pilotes requis par celle-ci. Il considère également que vous connaissez la ligne de commande au moins aussi bien que quelqu'un qui a complété le Gentoo Handbook (sachant que la plupart des étapes sont très similaires).
[modifier] Préparez l'environnement du livecd
Avant de chrooter l'installation, vous devez préparer l'environnement :
- Chargez tous les modules requis.
- Réglez le réseau
- Initialisez la swap avec, par exemple (où /dev/hda2 est une partition de swap) : swapon /dev/hda2
[modifier] Montez le système
Même si il est possible de monter un système de fichiers dans le système chrooté, ce n'est pas recommandé. La raison est que l'environnement du livecd n'aura pas connaissance de ces montages, donc si ils sont oubliés et laissés montés, ils ne seront pas démontés proprement lors de l'arrêt du système, pouvant causer des dégâts sur ces système de fichiers.
Montez la partition root (et si nécessaire, /boot) du système installé. Si des partitions séparées sont utilisées pour d'autres parties du système (par exemple, une partition séparée pour /var/log) alors elles devront aussi être montées.
Dans l'exemple suivant, /dev/hda1 est la partition /boot et /dev/hda3 est la partition root.
Il faut aussi monter /dev et /proc pour qu'ils puissent être utilisés par l'environnement chrooté.
[modifier] Chrootez dans le système installé
Avant de chrooter, vous devez copier /etc/resolv.conf afin que votre environnement chrooté puisse résoudre les noms de domaines :
Pour maintenant aller dans l'environnement chrooté, les étapes sont les mêmes que celles du Handbook :
- Chroot dans le système installé.
- Vérifiez que l'environnement est correct.
- Ajoutez un pense bête à la ligne de commande.
[modifier] Cas spéciaux
[modifier] Ré-installation de Grub
Grub lit le fichier /etc/mtab pour connaître les systèmes de fichiers actuellement montés, il doit donc être à jour. Vous pouvez le mettre à jour à partir de /proc/mounts en lançant :[modifier] Partir du chroot
Quand vous avez finis, vérifiez que vous avez bien arrêté tous les programmes et lancez les commandes suivantes pour partir du chroot et démonter les partitions. N'oubliez pas de démonter toute les autres partitions avant de démonter /mnt/gentoo.
Si vous recevez un message vous signifiant qu'un montage est occupé, ça peut vouloir dire deux choses :
- Un programme est toujours lancé dans le chroot.
- Ou plus fréquemment : un point de montage existe toujours dans ce montage. Par exemple, /mnt/gentoo/boot est toujours monté quand vous tentez de démonter /mnt/gentoo.
Dans ce dernier cas, démontez simplement les points de montage gênants d'abord. Pour connaître tous les montages en cours tapez mount sans paramètres.
[modifier] Problèmes
[modifier] Exec format error
Si la commande chroot retourne une erreur "chroot: cannot run command `/bin/bash': Exec format error", ça indique souvent que le livecd n'est pas compatible avec le système installé.
Par exemple, l'erreur est souvent visible quand l'on tente de faire un chroot vers un système 64 bits (amd64) à partir d'un livecd 32bits (x86).
La solution est d'utiliser un livecd qui utilise la même architecture que le système installé.
