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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:systeme:chroot [16/11/2014 08:54] smolski [Opérations sur votre système] |
doc:systeme:chroot [11/06/2023 14:33] (Version actuelle) Croutons [Deuxième étape: montage, et chroot] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== chroot ====== | ====== chroot ====== | ||
- | * Objet : chrooter un système | + | * Objet : Utilisation de la commande chroot pour accéder à une installation gnu/linux depuis une autre |
* Niveau requis : {{tag>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 : |
- | * Suivi : | + | |
* Création par [[user>smolski]] le 28/10/2011 | * Création par [[user>smolski]] le 28/10/2011 | ||
- | * Testé par ... le ... | + | * 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 !)) | * 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 texte, nous 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éral, il 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 debian, ou la DFiso, mais 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 user> | + | <code user>lsblk --fs</code> |
- | su fdisk -l</code> | + | |
+ | 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% / | ||
+ | |||
+ | 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> | ||
- | Cette commande vous permet de vérifier quelle partition exactement est à "chrooter", c'est-à-dire quelle est votre partition racine. \\ | + | ''/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 ''/''). |
- | 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 : | + | |
- | Device Boot Start End Blocks Id System | + | |
- | /dev/hda1 * 1 5624 45174748+ 83 Linux | + | |
- | /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''. | + | La partition qui nous intéresse ici est ''/dev/sdb3'', car c'est la partition racine de l'autre système. |
+ | On la reconnaît en général car elle est en ext4 et a une taille comprise entre 15Go et 50Go. | ||
==== Création d'un répertoire où la partition système sera montée. ==== | ==== Création d'un répertoire où la partition système sera montée. ==== | ||
- | On commence donc par créer le répertoire chroot : | + | On commence donc par créer un répertoire de montage : |
<code root> | <code root> | ||
- | mkdir /mnt/chroot</code> | + | mkdir /mnt/plouf</code> |
Puis on monte notre partition système dans ce répertoire : | Puis on monte notre partition système dans ce répertoire : | ||
<code root> | <code root> | ||
- | mount /dev/hda1 /mnt/chroot</code> | + | 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 : | + | |
- | <code root> | + | |
- | mount /dev/hdxy /mnt/chroot/boot</code> | + | |
- | + | ||
- | <note important>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.</note> | + | |
Une fois que la partition système est montée, il faut monter les périphériques que le Live CD a trouvé : | Une fois que la partition système est montée, il faut monter les périphériques que le Live CD a trouvé : | ||
<code root> | <code root> | ||
- | mount --bind /dev/ /mnt/chroot/dev</code> | + | mount --bind /dev/ /mnt/plouf/dev |
- | <code root> | + | mount --bind /sys/ /mnt/plouf/sys |
- | mount -t proc /proc /mnt/chroot/proc</code> | + | mount -t proc /proc /mnt/plouf/proc</code> |
- | + | ||
- | Votre système est alors prêt à être "chrooté" : | + | |
- | <code root> | + | |
- | chroot /mnt/chroot</code> | + | |
- | Il peut parfois être nécessaire, en fonction de votre système ou du Live CD à partir duquel vous avez démarré d'ajouter /bin/bash à la commande. | + | Entrez alors dans le système et monter les autres partitions : |
<code root> | <code root> | ||
- | chroot /mnt/chroot /bin/bash</code> | + | chroot /mnt/plouf /bin/bash |
+ | mount -a</code> | ||
- | Une fois toutes ces opérations effectuées, vous êtes maintenant en tant que root sur votre système installé en dur. | + | Une fois toutes ces opérations effectuées, vous êtes dans un shell root sur le système auquel vous cherchiez à accéder. |
===== Opérations sur votre système ===== | ===== Opérations sur votre système ===== | ||
- | Une fois votre chroot réalisé, vous pouvez donc apporter des modifications 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. \\ | + | 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. \\ | + | 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. | 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 : | + | |
- | <code root> | + | |
- | update-grub</code> | + | |
- | Une fois le fichier /etc/grub/grub.cfg "réparé", tapez : | + | ==== Vous n'y avez pas accès à internet ? ==== |
- | <code root> | + | |
- | grub-install /dev/hda</code> | + | |
- | Nous supposons ici, puisqu'il s'agit d'un cas simple, que vous voulez installer GRUB sur le MBR du disque dur. \\ | + | Par exemple, vous essayez de mettre à jour le système à opérer, mais cela ne fonctionne pas... |
- | Si l'étape se passe mal, essayez avec la commande : | + | Vous tentez sans succès : |
- | <code root>grub-install --root-directory=/mnt/chroot/ --recheck /dev/hda</code> | + | |
- | <note important>A vérifier. Voir le post sur le forum : [[https://debian-facile.org/viewtopic.php?pid=102176#p102176]]</note> | + | |
- | Pour des problèmes plus sérieux, et si les commandes ci-dessus ne donnent pas de résultat sortons l'artillerie lourde ! \\ | + | |
- | D'abord installons, si ce n'est pas déjà fait os-prober : | + | |
- | <code root> | + | |
- | apt-get install os-prober</code> | + | |
- | Effacer votre grub.cfg pour repartir de zéro \\ | + | <code>ping www.debian-facile.org</code> |
- | Avant tout, faire une sauvegarde ainsi : | + | |
- | <code root> | + | |
- | cp /boot/grub/grub.cfg /boot/grub/grub.bak)</code> | + | |
- | <code root> | + | Pourtant "ip a" vous montre que votre carte réseau est en fonction "UP" et vous tentez avec succès : |
- | rm /boot/grub/grub.cfg</code> | + | |
- | Vérifiez que tous vos systèmes sont bien présents : | + | <code>ping 8.8.8.8</code> |
- | <code root> | + | |
- | os-prober</code> | + | |
- | Reconstruction du fichier /boot/grub/grub.cfg | + | 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 : |
- | <code root> | + | |
- | grub-mkconfig -o /boot/grub/grub.cfg</code> | + | |
- | Réinstallation de Grub2 dans le MBR avec les options de vérification : | + | <code>cat /etc/resolv.conf</code> |
- | <note important>A vérifier. Voir le post sur le forum : [[https://debian-facile.org/viewtopic.php?pid=102176#p102176]]</note> | + | |
- | <code root> | + | |
- | grub-install --root-directory=/mnt/chroot/ --recheck /dev/hda</code> | + | |
- | Vérifiez que Grub2 est bien installé dans votre MBR : | + | Et le coller dans "/etc/resolv.conf" (dans le système auquel vous avez accédé via "chroot") : |
- | <code root> | + | |
- | dd if=/dev/sda bs=512 count=1 | strings</code> | + | |
- | 1+0 enregistrements lus | + | <code>nano /etc/resolv.conf</code> |
- | 1+0 enregistrements écrits | + | |
- | 512 octets (512 B) copiés, 1,788e-05 s, 28,6 MB/s | + | |
- | 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 : | ||
- | <code user> | + | <code root> |
exit</code> | 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 : | ||
- | <code user> | + | <code root> |
- | umount /mnt/chroot/boot</code> | + | umount -R /mnt/plouf</code> |
- | <code user> | + | Vous pouvez alors redémarrer votre machine et essayer de redémarrer sur le système qui ne bootait plus précédemment. |
- | umount /mnt/chroot/dev</code> | + | |
- | + | ||
- | <code user> | + | |
- | umount /mnt/chroot/proc</code> | + | |
- | + | ||
- | <code user> | + | |
- | umount /mnt/chroot</code> | + | |
- | + | ||
- | Vous pouvez alors redémarrer votre machine sur votre système installé en dur. | + | |
===== 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 : ===== |