Administrer une distribution inactive : chroot

17 Sep. 2006
Auteur : Azollyx
Responsable : TrustRobot
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Le programme chroot permet de modifier l'encrage du système, autrement dit, grâce à lui le répertoire /mon_exemple pourra devenir dans la console de travail la racine virtuelle du système /. C'est juste un peu de relativité... :) Ainsi, si vous souhaitez exécuter des programmes d'une autre distribution que celle active, vous pourrez grâce à chroot le faire. Il est toutefois à noter un point important : seul root est autorisé à son utilisation par défaut. Pour cette raison toutes les commandes seront à saisir en tant que root, et pour rappel, vous pouvez passer dans un terminal en tant que root via la commande :
su

1. Pré-requis :

Pour pouvoir entrer dans un environnement chrooté, il vous faut une distribution qui possède le programme chroot et qui vous permet de monter vos partitions. Je peux vous conseiller Knoppix ou Mininux que je dévelloperai, mais aussi toutes autres distributions installées sur votre machine. Mininux est une mini-distribution tenant sur une disquette alors que Knoppix est une distribution complète tenant sur un cd-rom bootable (rien ne doit être installé sur votre disque dans les deux cas). À noter que pour ceux qui, comme moi, préfèrent Gnome, un projet appelé Gnoppix existe, similaire à Knoppix mais avec Gnome. Je détaillerai ici uniquement comment créer sa disquette Minimux, Knoppix étant réalisé avec la même procédure que vous avez effectuée pour créer les CDs de votre distribution. Dans un premier temps insérez une disquette dans le lecteur (attention celle-ci sera intégralement effacée), puis tapez simplement la ligne suivante :
cat /chemin/où/est/mininux_x.x.img > /dev/fd0
Si vous avez plusieurs lecteurs disquettes, il vous faudra peut-être remplacer fd0 par fd1, je vous laisse le soin d'adapter à votre configuration. De plus il est inutile de monter la disquette. Voilà, c'était aussi simple que cela, il vous suffit simplement maintenant de booter sur la disquette pour avoir accès à votre nouvelle mini-distribution, et comme login rentrez root. Si vous êtes détenteur d'une carte réseau, vous aurez la possibilité d'indiquer l'IP à attribuer.

2. Monter les partitions :

Une fois dans votre nouvel environnement (minimux, knoppix, etc), il faut monter la ou les partitions de la distribution à laquelle vous voulez accéder. Par exemple:
mkdir /mnt/chroot mount /dev/hda5 /mnt/chroot mount /dev/hda1 /mnt/chroot/boot mount /dev/hda6 /mnt/chroot/home
Pour cela il vous faut connaître le partitionnement de votre disque dur. Un petit mémo rapide pour vous y retrouver : À cela vient les numéros de partition : Si vous n'avez aucune idée de la façon dont est partitionné votre système, je vous conseillerai d'utiliser le programme cfdisk. Cependant si vous avez un CD de Mandriva sous la main (ou plus simplement une distribution Mandriva viable), vous pouvez lancer une installation que vous avorterez par la suite pour avoir accès à DiskDrake (ou simplement en lançant la distribution).

3. Rentrez dans votre environnement chrooté :

Vous pouvez désormais rentrer dans votre environnement avec cette commande :
chroot /mnt/chroot
où /mnt/chroot est le point de montage de la distribution que vous comptez modifier. Et vous voilà dans votre environnement chrooté.

4. Application : récupération du mot de passe root :

Le chroot peut être utilisé pour diverses applications, comme la réparation d'un système qui suite à une fausse manipulation ne serait plus bootable. C'est pourquoi j'ai toujours un CD de Knoppix avec moi ;) . Nous allons ici considérer comme exemple le cas particulier du changement de mot de passe root sur une distribution, suite à un oubli. Une fois le chroot effectué, vous êtes logué en root dans votre environnement. Il vous suffit alors de changer le mot de passe avec la commande suivante :
passwd
Il vous faudra le saisir deux fois, puis rebooté sur la distribution, vous pourrez désormais retrouver votre administrateur root (ne pas se loguer en tant que root pour autant ;-)).