logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
doc:systeme:chroot [22/09/2013 23:31]
127.0.0.1 modification externe
doc:systeme:chroot [17/03/2022 16:30]
Switch [Deuxième étape: montage, et chroot]
Ligne 1: Ligne 1:
 ====== chroot ====== ====== chroot ======
  
-  * Objet du tuto chrooter un système +  * Objet : Utilisation de la commande chroot pour accéder à une installation gnu/linux depuis une autre 
-  * Niveau requis : AVISÉ +  * Niveau requis : {{tag>​avisé}} 
-  * Commentaires : //Réparer ​un système ​installé en dur à partir ​d'​un ​Live CD ou DVD// +  * Commentaires : //Cela peut être très utile si un système ​ne démarre plus à cause d'​un ​problème de grub, ou de noyau, etc.// 
-  * Débutant, à savoir ​: [[:doc:​systeme:​commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)+  * Suivi  
 +    * Création par [[user>​smolski]] le 28/​10/​2011 
 +    * Testé par [[user>​bendia]] le 2/05/2015 
 +    * Màj par [[user>​captnfab]] le 16/​01/​2021 
 +  * Commentaires sur le forum [[https://​debian-facile.org/​viewtopic.php?​id=10080 | c'est ici]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)
  
 ===== Introduction ===== ===== Introduction =====
  
-Dans ce textenous voulons montrer ​comment utiliser la commande chroot pour pouvoir basculer vers votre système GNU/Linux, c'​est-à-dire ​votre Debian préférée,​ à partir d'un autre système. Ce second système peut être un Live CD ou DVD. Un autre système ​à base Debian ​en dual boot sur votre ordi est tout aussi valable.+La commande ''​chroot''​ signifie //change root//c'est à dire changer la racine. Elle permet donc d'« entrer dans » une installation de Linux, sans //booter// dessus. 
 +Nous allons voir comment utiliser la commande chroot pour pouvoir basculer vers un système GNU/​Linux ​(par exemple ​votre Debian préférée), à partir d'un autre système. Ce second système peut être un Live (cd/​usb) ​ou un autre système ​GNU/​Linux ​en dual boot.
  
-Règle généralil faut donc trouver un Live CD puis démarrez sor ordi avec. Comment mentionné, n'​importe quel Live CD à base de Debian ​fera l'​affaire : Knoppix, Ubuntu, Sidux, etc. +Vous pouvez par exemle utiliser une live debianou la DFisomais n'​importe quel Live CD GNU/​Linux ​fera l'​affaire : Knoppix, Ubuntu, Sidux, etc. 
  
-<note important>​Attention,​ si votre système est en 64bits, il faudra démarrer avec un LiveCD ​en 64bits</​note>​+<note important>​Attention,​ si votre système est en 64bits, il faudra démarrer avec un Live en 64bits</​note>​
  
-===== Deuxième étape: montage, et chrootage ​=====+===== Deuxième étape: montage, et chroot ​=====
  
 Voici en détail les opérations à effectuer pour monter et chrooter son système. Voici en détail les opérations à effectuer pour monter et chrooter son système.
  
-1. Identification de la partition à chrooter+==== Identification de la partition à chrooter ​==== 
 + 
 +<note important>​Il vous faut connaître d'​abord ce qu'est un [[doc:​systeme:​terminal|terminal]] et ce que sont des commandes [[doc:​systeme:​superutilisateur|user et superutilisateur]] à utiliser dedans.</​note>​
  
 Ouvrez un terminal et tapez : Ouvrez un terminal et tapez :
 +<code root>​lsblk --fs</​code>​
  
-  su fdisk -l+Cette commande vous permet de lister les partitions présentes sur votre machine. À vous d'​identifier la partition racine du système auquel vous voulez accéder. \\ 
 +Dans le cas où l'on a deux systèmes présents sur son ordi (en comptant le live ou le dual-boot), le résultat de la commande ci-dessus pourrait ressembler à ceci :  
 +<file config retour de la commande>​ 
 +NAME                  FSTYPE ​     FSVER    LABEL      UUID                                   ​FSAVAIL FSUSE% MOUNTPOINT 
 +sda                                                                                                          
 +├─sda1 ​               ext4        1.0                 ​711cca50-9068-4a59-9c39-a6b3947a3250 ​   346,​4M ​   23% /boot 
 +└─sda2 ​               ext4        1.0                 ​18c3dcf5-7912-47d5-b121-c246482181a1 ​    ​15,​0G ​   50% /
  
-Cette commande vous permet de vérifier quelle partition exactement est à "​chrooter"​c'est-à-dire quelle est votre partition racine.+sdb                                                                                                          
 +├─sdb1 ​               vfat        FAT32               ​7AD0-5B24 ​                              450,8M     5% 
 +├─sdb2 ​               swap        1                   ​0d43bb7d-f3a8-4232-969e-ad47f5616923 
 +├─sdb3 ​               ext4        1.0                 ​160df578-36ff-4dc3-b9a7-a67b0b0ae9b9 ​      ​17G ​   45% 
 +└─sdb4 ​               ext4        1.0                 ​3be277a2-1f2b-44a1-bda6-066cf5bc7a9d ​   494,​9G ​   40% 
 +</​file>​
  
-Dans le cas où l'​on ​a un seul système présent sur son ordi, le résultat de la commande ci-dessus ressemblera à ceci : +''/​dev/​sda2''​ est la partition racine du système que l'​on ​est en train d'​utiliser (on le voit car la colonne mountpoint indique ''/''​).
  
-   ​Device Boot      Start         ​End ​     Blocks ​  ​Id ​ System +La partition qui nous intéresse ici est ''​/dev/sdb3'',​ car c'est la partition racine de l'​autre système. 
-   /dev/hda1   ​* ​          ​1 ​       5624    45174748+ ​ 83  Linux +On la reconnaît en général car elle est en ext4 et a une taille comprise entre 15Go et 50Go.
-   /​dev/​hda2 ​           5625        6110     ​3903795 ​  ​82 ​ Linux swap / Solaris +
-   /​dev/​hda3 ​           6111       ​14946 ​   70975170 ​   5  Extended +
-   /​dev/​hda5 ​           6111       ​14946 ​   70975138+ ​ 8e  Linux LVM+
  
-La partition ​qui nous intéresse ici est /dev/hda1.+==== Création d'un répertoire où la partition ​système sera montée====
  
-2. Création d'un répertoire où la partition système sera montée. +On commence donc par créer ​un répertoire ​de montage ​
- +<code root> 
- +mkdir /mnt/plouf</​code>​
-On commence donc par créer ​le répertoire ​chroot ​+
-  # ​mkdir /mnt/chroot+
  
 Puis on monte notre partition système dans ce répertoire : Puis on monte notre partition système dans ce répertoire :
-  # mount /dev/hda1 /mnt/chroot+<code root> 
 +mount /dev/sdb3 /mnt/plouf</​code>​ 
 +<note tip>Pour monter un système qui tient sur plusieurs partitions ( généralement une partition système plus une partition contenant le /home partition utilisateur ou dans le cas d'​utilisation de plusieurs volumes [[doc:​systeme:​lvm|LVM]]). Il suffit; après avoir monté la partition principale avec la commande ci dessus; de bien monter la seconde partition au bon endroit. Ex : pour un /home séparé : le monter avec la commande mount dans le dossier /​mnt/​plouf/​**home/​** . ( pas simplement /mnt/plouf !). </​note>​
  
-Si vous avez une partition ​séparée pour /boot, il faut aussi la monter :  +Une fois que la partition ​système est montée, il faut monter ​les périphériques que le Live CD a trouvé ​
-  # ​mount /dev/hdxy /mnt/chroot/boot+<code root> 
 +mount --bind ​/dev/ /mnt/plouf/dev 
 +mount --bind /sys/ /​mnt/​plouf/​sys 
 +mount -t proc /proc /​mnt/​plouf/​proc<​/code>
  
-Il est d'​ailleurs probable que dans ce cas, /dev/hda1 soit votre partition ​/boot et /dev/hda2 la racine de votre système, soyez attentif à ce que vous faites.+Entrez alors dans le système et monter les autres partitions : 
 +<code root> 
 +chroot ​/mnt/plouf /bin/bash 
 +mount -a</code>
  
-Une fois que la partition système est montéeil faut monter les périphériques que le Live CD a trouvé,  +Une fois toutes ces opérations effectuéesvous êtes dans un shell root sur le système auquel vous cherchiez à accéder. ​
-  # mount --bind /dev/ /​mnt/​chroot/​dev +
-  # mount -t proc /proc /​mnt/​chroot/​proc+
  
-Votre système ​est alors prêt à être "​chrooté"​ : +===== Opérations sur votre système ​=====
-  # chroot /mnt/chroot+
  
-Il peut parfois être nécessaireen fonction de votre système ​ou du Live CD à partir duquel vous avez démarré d'​ajouter /bin/bash à la commande.+Une fois votre chroot réalisévous pouvez donc apporter des modifications sur votre système.
  
-  # chroot ​/mnt/chroot ​/bin/bash+Vous pouvez, par exemple, utiliser les commandes ''​apt''​/''​apt-get''​/etc. pour installer des paquets ou en enlever. 
 +Cela permet de pouvoir récupérer un système où suite à une mise à jour des paquets sont cassés et/ou buggés.
  
-Une fois toutes ces opérations effectuéesvous êtes maintenant en tant que root sur votre système ​installé en dur+Avec la branche sidil peut arriver à l'​occasion (rarement quand même) qu'une mise à jour de paquets casse complètement le système à notre prochain démarrage. Un chroot nous évite alors une réinstallation du système.
  
-===== Opérations sur votre système ===== 
  
-Une fois votre chroot réalisé, vous pouvez donc apporter des modifications sur votre système. Vous pouvez, par exemple, installer des paquets ou en enlever. Bref, les commandes apt-get update, apt-get upgrade et autres sont opérationnelles. Cela permet de pouvoir récupérer un système où suite à une mise à jour des paquets sont cassés et/ou buggés. Avec la branche sid, il peut arriver à l'​occasion (rarement quand même) qu'une mise à jour de paquets casse complètement le système à notre prochain démarrage. Un chroot nous évite alors une réinstallation du système. 
  
 ==== Exemple détaillé de l'​utilisation d'un chroot : réinstaller GRUB 2 ==== ==== Exemple détaillé de l'​utilisation d'un chroot : réinstaller GRUB 2 ====
  
-Le paquet ​grub2 n'est pas indispensable,​ c'est ce que l'on appelle un "​méta-paquet"​ il ne sert qu'à installer grub-pc et grub-common.+  * Voir [[:​doc:​systeme:​grub2:​reparer|Réparer Grub2]]
  
-    * Éditez le fichier /​etc/​default/​grub (uniquement si vous savez ce que vous faites!) selon vos besoin, et lancez ensuite la commande : +==== Vous n'y avez pas accès à internet ? ====
  
-# update-grub+Par exemple, vous essayez de mettre à jour le système à opérer, mais cela ne fonctionne pas...
  
-    * Une fois le fichier /​etc/​grub/​grub.cfg "​réparé",​ tapez +Vous tentez sans succès ​:
  
-# grub-install ​/dev/​hda ​+<​code>​ping www.debian-facile.org<​/code>
  
-Nous supposons ​ ici, puisqu'​il s'agit d'un cas simple, ​que vous voulez installer GRUB sur le MBR du disque dur.+Pourtant "ip a" vous montre ​que votre carte réseau est en fonction "​UP"​ et vous tentez avec succès :
  
-    * Si l'​étape se passe mal, essayez avec la commande ​+<​code>​ping 8.8.8.8</​code>​
  
-# grub-install --root-directory=/​mnt/​chroot/​ --recheck /dev/hda+Dans ce cas là, il vous faut copier dans la partition racine du système que l'on est en train d'​utiliser le contenue de :
  
-Pour des problèmes plus sérieux, et si les commandes ci-dessus ne donnent pas de résultat+<​code>​cat /​etc/​resolv.conf</​code> ​
  
-Sortons l'​artillerie lourde !+Et le coller dans "/​etc/​resolv.conf"​ (dans le système auquel vous avez accédé via "​chroot"​) :
  
-   1. D'​abord installons, si ce n'est pas déjà fait os-prober  +<​code>​nano ​/etc/resolv.conf</code>
- +
-# aptitude install os-prober +
- +
-   1. Effacer votre grub.cfg pour repartir de zéro :  +
- +
-Avant de lancer la commande ci-dessous, faire une sauvegarde (cp /boot/grub/grub.cfg /​boot/​grub/​grub.bak) +
- +
-# rm /​boot/​grub/​grub.cfg +
- +
-   1. Vérifiez que tous vos systèmes sont bien présents :  +
- +
-# os-prober +
- +
-   1. Reconstruction du fichier /​boot/​grub/​grub.cfg  +
- +
-# grub-mkconfig -o /​boot/​grub/​grub.cfg +
- +
-   1. Réinstallation de Grub2 dans le MBR avec les options de vérification  +
- +
-# grub-install --root-directory=/​mnt/​chroot/​ --recheck /dev/hda +
- +
-   1. Vérifiez que Grub2 est bien installé dans votre MBR :  +
- +
-  # dd if=/dev/sda bs=512 count=1 | strings +
-  1+0 enregistrements lus +
-  1+0 enregistrements écrits +
-  512 octets (512 B) copiés, 1,788e-05 s, 28,6 MB/+
-  ZRr= +
-  `|f +
-  \|f1 +
-  GRUB +
-  Geom +
-  Hard Disk +
-  Read +
-  Error +
- +
-C'est bon, il est présent !+
  
 +Vous devriez à présent accéder a internet et vraquier a vos occupations !
 ===== Sortir du chroot ===== ===== Sortir du chroot =====
  
 Pour sortir du chroot, il suffit de taper la commande : Pour sortir du chroot, il suffit de taper la commande :
-  $ exit+<code root> 
 +exit</​code>​
  
 Une fois que vous êtes revenu à la console de base, il vous reste à démonter tous vos montages antérieurs : Une fois que vous êtes revenu à la console de base, il vous reste à démonter tous vos montages antérieurs :
-  $ umount /​mnt/​chroot/​boot +<code root> 
-  ​$ ​umount /mnt/chroot/​dev +umount ​-R /mnt/plouf</code>
-  $ umount /​mnt/​chroot/​proc +
-  $ umount /mnt/chroot+
  
- Vous pouvez alors redémarrer votre machine sur votre système ​installé en dur.+ Vous pouvez alors redémarrer votre machine ​et essayer de redémarrer ​sur le système ​qui ne bootait plus précédemment.
  
 ===== gimp en chroot ===== ===== gimp en chroot =====
  
-  * [[:​doc:​systeme:​chroot ​| Installer une version chrootée de gimp pas à pas]] +  * [[http://​debian-facile.org/​doc:​systeme:​schroot ​| Installer une version chrootée de gimp pas à pas]]
- +
  
 ===== Liens et remerciement : ===== ===== Liens et remerciement : =====
doc/systeme/chroot.txt · Dernière modification: 11/06/2023 14:33 par Croutons

Pied de page des forums

Propulsé par FluxBB