Différences
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 | ||
chroot [Le 25/01/2024, 22:12] sefran Correction formulation |
chroot [Le 27/06/2025, 07:32] (Version actuelle) 77.205.22.150 [Chroot : changement d'environnement] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
====== Chroot : changement d'environnement ====== | ====== Chroot : changement d'environnement ====== | ||
+ | |||
Linux est le logiciel système d'exploitation qui est une sorte de proxy (interface) entre l'utilisateur et le matériel. Ce système logiciel d'interface matériels est alors actif dans un environnement d'exécution à la fin du lancement du système d'exploitation (processus init). | Linux est le logiciel système d'exploitation qui est une sorte de proxy (interface) entre l'utilisateur et le matériel. Ce système logiciel d'interface matériels est alors actif dans un environnement d'exécution à la fin du lancement du système d'exploitation (processus init). | ||
Ligne 21: | Ligne 22: | ||
Le concept de chroot, de changements ou d'isolation d'environnement système utilisateurs (ou d'exécution d'applications), s'est étendu aux ressources du système d'exploitation avec la notion de conteneurs comme [[lxc|lxc]], [[docker|docker]] (sans changement du logiciel système d'exploitation), et aux systèmes d'exploitation au niveau du matériel avec la [[virtualisation|virtualisation]] ou les proxy matériels pur, les XénoServeur, comme [[xen|xen]]. | Le concept de chroot, de changements ou d'isolation d'environnement système utilisateurs (ou d'exécution d'applications), s'est étendu aux ressources du système d'exploitation avec la notion de conteneurs comme [[lxc|lxc]], [[docker|docker]] (sans changement du logiciel système d'exploitation), et aux systèmes d'exploitation au niveau du matériel avec la [[virtualisation|virtualisation]] ou les proxy matériels pur, les XénoServeur, comme [[xen|xen]]. | ||
+ | |||
+ | <note>Pour chrooter ( changer de système ) dans le système a réparer , évidemment , il faut démarrer sur un système parfaitement sain au préalable . Si vous n' en avez pas un sur votre ordinateur ( cas le plus courant ) , il faudra alors démarrer sur [[live_usb|une session live USB (Live USB)]].</note> | ||
===== Changer de système ===== | ===== Changer de système ===== | ||
Ligne 53: | Ligne 56: | ||
sudo umount /media/system</code> | sudo umount /media/system</code> | ||
+ | ==== Pour un système avec prise en charge de l ' EFI : ==== | ||
+ | il s' agit de faire en sorte une fois le " chroot " exécuté de monte le nécessaire pour prendre en charge l' EFI . | ||
+ | le chroot ( en condensé ) : | ||
+ | <code> | ||
+ | sudo mount --mkdir -v /dev/<PARTITION_SYSTEM> /media/system && sudo mount -v --bind /dev /media/system/dev && sudo mount -vt proc /proc /media/system/proc && sudo mount -v --bind /run /media/system/run && sudo mount -vt sysfs /sys /media/system/sys && sudo mount --bind /etc/resolv.conf /mnt/etc/resolv.conf && sudo chroot /media/system | ||
+ | </code> | ||
- | ==== Exemple pratique avec une version 17.10 , 18.04 , 20.04 , 21.04 et 22.04==== | + | le nécessaire pour prise en charge EFI : |
+ | <code> | ||
+ | mount -t efivarfs none /sys/firmware/efi/efivars | ||
+ | mount /dev/<PARTITION_EFI> /boot/efi | ||
+ | </code> | ||
+ | Bien sur , ne pas oublier de remplacer : " <PARTITION_SYSTEM> " et " <PARTITION_EFI> " par ce qui convient . | ||
+ | il est possible d ' obtenir les informations de partitions préalablement avec la commande suivante : | ||
+ | <code>lsblk -fe7</code> | ||
+ | |||
+ | ==== Exemple pratique avec une version 17.10 , 18.04 , 20.04 , 21.04 , 22.04 et 24.04 ==== | ||
Le plus souvent, cette utilisation est faite à partir d'une clé USB d'installation d'Ubuntu. Ceci est un cas pratique fait en EFI sur partition système non chiffrée. | Le plus souvent, cette utilisation est faite à partir d'une clé USB d'installation d'Ubuntu. Ceci est un cas pratique fait en EFI sur partition système non chiffrée. | ||
Les commandes de préparation sont | Les commandes de préparation sont | ||
<code>setxkbmap fr ### afin d'avoir un clavier français. | <code>setxkbmap fr ### afin d'avoir un clavier français. | ||
- | sudo -i ### afin d'éviter de passer son temps à frapper cette commande</code> | + | sudo -i ### afin d'éviter de passer son temps à taper cette commande</code> |
- | L'identification de la partition système à cibler sera plus aisée en frappant la commande | + | L'identification de la partition système à cibler sera plus aisée en tapant la commande |
<code>lsblk -fe7</code> | <code>lsblk -fe7</code> | ||
Si cette commande montre que ubuntu est installé dans une partition chiffrée, il est nécessaire de l'ouvrir pour y avoir accès. | Si cette commande montre que ubuntu est installé dans une partition chiffrée, il est nécessaire de l'ouvrir pour y avoir accès. | ||
<code bash>cryptsetup luksOpen /dev/xxx chiffre</code> | <code bash>cryptsetup luksOpen /dev/xxx chiffre</code> | ||
- | Le montage de la partition système à cibler se fera en frappant la commande (pensez à remplacer XXXX par la bonne valeur). | + | Le montage de la partition système à cibler se fera en tapant la commande (pensez à remplacer XXXX par la bonne valeur). |
<code>mount /dev/XXXX /mnt ### Si pas chiffrée | <code>mount /dev/XXXX /mnt ### Si pas chiffrée | ||
ou | ou | ||
- | mount /dev/mapper/chiffre /mnt ### Si chiffrée</code> | + | mount /dev/mapper/chiffre /mnt ### Si chiffrée |
+ | ou | ||
+ | zpool import -a -f -l -R /mnt ### Si partition zfs standard</code> | ||
Le montage des répertoires se fera avec ces commandes (copier/coller). | Le montage des répertoires se fera avec ces commandes (copier/coller). | ||
<code> mount -t proc /proc /mnt/proc | <code> mount -t proc /proc /mnt/proc | ||
Ligne 72: | Ligne 92: | ||
mount --bind /dev /mnt/dev | mount --bind /dev /mnt/dev | ||
mount --bind /run /mnt/run | mount --bind /run /mnt/run | ||
- | mount --bind /sys /mnt/sys | ||
mount --bind /etc/resolv.conf /mnt/etc/resolv.conf | mount --bind /etc/resolv.conf /mnt/etc/resolv.conf | ||
modprobe efivars </code> | modprobe efivars </code> | ||
Ligne 131: | Ligne 150: | ||
- | ==== Pour un ubuntu installé dans une partition BTRFS ==== | + | ==== Pour un ubuntu intallé dans une partition BTRFS ==== |
[[https://forum.ubuntu-fr.org/viewtopic.php?pid=22031607#p22031607|c'est là]] ou [[:timeshift#restauration_depuis_une_autre_instance|là.]] | [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22031607#p22031607|c'est là]] ou [[:timeshift#restauration_depuis_une_autre_instance|là.]] | ||
+ | ou aussi [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22771420#p22771420|là]] et en [[https://forum.endeavouros.com/t/chroot-into-a-btrfs-uefi-system-from-live-media/15986|anglais.]] | ||
===== Isolation d'applications ===== | ===== Isolation d'applications ===== | ||
C'est une action logicielle qui consiste à protéger l'environnement système des faiblesses de sécurités d'une application. | C'est une action logicielle qui consiste à protéger l'environnement système des faiblesses de sécurités d'une application. | ||
- | Pour cela on peut utiliser chroot, les conteneurs ou la virtualisation matérielle. | + | Pour cela on peut utiliser chroot, [[https://doc.ubuntu-fr.org/virtualisation|les conteneurs ou la virtualisation matérielle]]. |
Dans cette documentation nous traitons de la mise en place avec chroot. | Dans cette documentation nous traitons de la mise en place avec chroot. | ||
Ligne 147: | Ligne 166: | ||
* [[schroot|schroot]] | * [[schroot|schroot]] | ||
+ | * [[fakeroot|fakeroot]] [[https://www.thegeekdiary.com/fakeroot-command-examples-in-linux/|Lien externe EN]] | ||
* [[https://linuxfr.org/news/care-et-la-reproductibilite-des-executions|care]] | * [[https://linuxfr.org/news/care-et-la-reproductibilite-des-executions|care]] | ||
* [[https://linuxfr.org/tags/cde/public|cde]] | * [[https://linuxfr.org/tags/cde/public|cde]] |