Amorçage, démarrage du système

chroot sous Linux : Explications et exemples

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction





Que veut dire chrooter ?

Et bien chrooter est un verbe qui vient du mot chroot.



man chroot :
chroot - exécuter une commande ou un shell interactif avec un répertoire racine spécial




En d'autres termes, la commande chroot permet de changer le répertoire racine vers un nouvel emplacement.



Chroot peut être utilisé dans deux cas :

  • En tant que bascule d'environnement pour prendre le contrôle d'une installation Linux depuis un autre système.
  • En tant que prison pour empêcher un utilisateur de remonter dans l'arborescence pour l'emprisonner dans un répertoire spécifique (ce qui peut être utilisé avec un serveur FTP pour que les utilisateurs ne remontent pas dans l'arborescence du système)





Je vais traiter dans cette page la première partie.





A quoi cela peut bien servir





Et bien, avec grub2, il est souvent impossible de l'installer sur la partition racine depuis le média d'installation.

Si vous avez un autre gestionnaire d'amorçage et que vous ne voulez pas l'écraser, le chroot peut être utile.

Le chroot peut aider à écraser le mot de passe root si vous l'avez perdu.

Récupérer un système endommagé.

Et bien d'autres utilisations ....





Recommandations





Nous allons chrooter ici un système installé sur un disque dur depuis un CD Live de la même distribution.

J'ai fait mes tests sur une Mageia 3 64bits.

Il est recommandé d’utiliser donc un Live DVD de la même distribution avec la même architecture et le même environnement de bureau.





C'est parti, chrootons





Dans un premier temps, booter sur le Live CD ou Live DVD de la distribution adéquate.

Si nous voulons chroter notre distribution installée sur le disque dur et qu'il s'agit d'une Mageia 3 KDE 64bits, prendre le Live DVD Mageia 3 64bits KDE.

S'il s'agit d'une Ubuntu 32bits, prenez une Ubuntu 32bits Live CD.



Une fois sur le bureau, se connecter en root dans une console.



Maintenant, les choses sérieuses commencent.



Dans un premier temps, on prépare notre future arborescence :



Code BASH :
mkdir /media/sys




Ensuite, on va monter notre racine dans la future arborescence :



Dans cet exemple, je suppose que /dev/sda1 est la partition racine de mon système installé sur disque dur.

Remplacer évidemment en fonction de votre cas.




Code BASH :
mount /dev/sda1 /media/sys




Ensuite, montez si vous en avez l'utilité d'autres partitions (/home ou /var si vous avez un /var séparé, /usr si vous avez un /usr séparé etc ... )

Exemple avec /home en /dev/sda2



Code BASH :
mount /dev/sda2 /media/sys/home




Ensuite, il ne faut pas oublier de monter les dossiers spéciaux nécessaires au fonctionnement du système :



Code BASH :
mount --bind /dev /media/sys/dev
mount -t proc /proc /media/sys/proc
mount -t sysfs /sys /media/sys/sys




Enfin, basculer vers le nouveau système avec la commande chroot :



Code BASH :
chroot /media/sys /bin/bash 




Le prompt change alors et vous êtes prêts à utiliser votre distribution qui est installée sur le disque dur :intello:





Et quand j'ai fini, je déchroot ?





Et bien Oui, il est préférable, une fois les opérations terminées de démonter notre chroot.



Quitter le système chrooté avec la commande



Code BASH :
exit




Puis une fois revenu sur le système live, démonter tous les systèmes de fichiers précédemment montés :



Commencer par les dossiers spéciaux :



Code BASH :
umount /media/sys/dev
umount /media/sys/proc
umount /media/sys/sys




Puis par les partitions additionnelles :



Code BASH :
unmount /media/sys/home




Et enfin la racine :



Code BASH :
umount /media/sys






Exemple de tâches faites sous système chrooté







Installation de GRUB2 sur la partition racine





J'ai sur ma machine plusieurs systèmes (deux Linux).

Une Mageia dont la partition racine est /dev/sda1, et une Calculate Linux dont la partition racine s'appelle /dev/sda6



Je souhaite conserver GRUB de Mageia sur mon MBR, et d'installer le GRUB2 de Calculate sur sa partition racine.

Je ferai un chainage sur le GRUB de Mageia vers la partition /dev/sda6



J'ai donc installé ma Calculate Linux avec / sur /dev/sda6, sans installer GRUB2.



J'ai chrooté avec le live DVD le système Calculate Linux comme indiqué précédemment.



Il m'a juste fallu installer GRUB2 sur le / de Calculate.



Dans mon système chrooté :



Code BASH :
grub-install -f /dev/sda6




Et l'affaire est réglée.