website view fr/doc/handbook/chroot-env.html @ rev 1344

Resize balinor logo to 120px
author Christophe Lincoln <pankso@slitaz.org>
date Fri Jan 22 23:02:15 2021 +0100 (2021-01-22)
parents 2120105cc07b
children
line source
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
4 <head>
5 <title>SliTaz Handbook - Chroot env</title>
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
7 <meta name="description" content="SliTaz chroot environnement chrooté développer tester" />
8 <meta name="expires" content="never" />
9 <meta name="modified" content="2007-12-03 12:30:00" />
10 <meta name="publisher" content="www.slitaz.org" />
11 <meta name="author" content="Christophe Lincoln"/>
12 <link rel="shortcut icon" href="favicon.ico" />
13 <link rel="stylesheet" type="text/css" href="book.css" />
14 </head>
15 <body bgcolor="#ffffff">
17 <!-- Header and quick navigation -->
18 <div id="header">
19 <div align="right" id="quicknav">
20 <a name="top"></a>
21 <a href="hacking-livecd.html">Hacking LiveCD</a> |
22 <a href="index.html">Table des matières</a>
23 </div>
24 <h1><font color="#3E1220">SliTaz Handbook</font></h1>
25 </div>
27 <!-- Content. -->
28 <div id="content">
29 <div class="content-right"></div>
31 <h2><font color="#DF8F06">Chroot environment</font></h2>
33 <p>
34 Ce document décrit les étapes à réaliser pour créer un environnement chrooté,
35 afin de changer la racine du système pour travailler. Cela permet de compiler,
36 tester et développer SliTaz sans risques pour le système hôte depuis lequel
37 on travaille. Ce système hôte peut être SliTaz installée en dur ou tout autre
38 système GNU/Linux tel que Debian, Fedora, PCLinuxOS, etc. On peut aussi créer
39 un environnement chrooté en mode LiveCD associé à un media USB. Les seuls
40 prérequis sont d'avoir une image ISO de SliTaz à disposition et un peu de
41 temps. A noter que toutes les opérations sont réalisées en tant
42 qu'administrateur (<em>root</em>).
43 </p>
44 <h3><font color="#6c0023">Préparer l'environnement</font></h3>
45 <p>
46 Pour commencer, il faut extraire le contenu de l'image ISO dans le répertoire
47 qui va servir au chroot. Le répertoire de chroot peut se créer à l'endroit que
48 l'on veut, nous utilisons un répertoire <code>/home/slitaz/chroot-env</code>.
49 Pour extraire le contenu d'une image ISO, il faut la monter en <em>loop</em>
50 sur un répertoire, pour ensuite copier le système de fichiers racine
51 compressé (<code>rootfs.gz</code>) dans le répertoire de chroot. En
52 supposant que l'ISO est dans le répertoire courant :
53 </p>
54 <pre>
55 # mkdir /tmp/loop
56 # mount -o loop slitaz-cooking.iso /tmp/loop
57 # mkdir -p /home/slitaz/chroot-env
58 # cp /tmp/loop/boot/rootfs.gz \
59 /home/slitaz/chroot-env
60 # umount /tmp/loop
61 </pre>
62 <p>
63 Maintenant qu'on a une copie du système de fichiers compressé, il faut le
64 décompresser et le désarchiver (c'est une archive <code>cpio</code> compressée
65 avec lzma ou gzip). Pour finir cette étape de préparation et continuer, on
66 peut retirer le <code>rootfs</code> qui n'est plus utilisé :
67 </p>
68 <pre>
69 # cd /home/slitaz/chroot-env
70 # (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so) | cpio -id
71 # rm rootfs rootfs.gz
72 </pre>
73 <p>
74 Si le désarchivage du rootfs compressé avec LZMA échoue en utilisant la
75 première méthode vous pouvez utiliser:
76 </p>
77 <pre>
78 # unlzma rootfs.gz -S .gz
79 # cat rootfs | cpio -id
80 </pre>
82 <h3><font color="#6c0023">Utiliser l'environnement</font></h3>
83 <p>
84 Pour utiliser l'environnemnt chrooté, il suffit de monter quelques systèmes
85 de fichier virtuels et d'utiliser la commande <code>chroot</code>. Pour se
86 simplifier la vie on peut rapidement créer un petit script automatisant
87 le chroot. Exemple en utilisant le répertoire de chroot
88 <code>/home/slitaz/chroot-env</code> et en créant un script nommé
89 <code>chroot_in_env.sh</code> dans <code>/home/slitaz</code>. A noter que
90 le contenu du script n'a pas besoin d'être tapé mais simplement copié/coller
91 dans le terminal et que sur un autre système que SliTaz vous pouvez
92 décommenter les lignes montant/démontant <code>/dev</code> et
93 <code>/tmp</code> :
94 </p>
95 <pre>
96 # cat &gt; /home/slitaz/chroot_in_env.sh &lt;&lt; "EOF"
97 </pre>
98 <pre class="script">
99 #!/bin/sh
100 # Chroot in SliTaz to hack.
101 #
102 ROOTFS="/home/slitaz/chroot-env"
104 # Mount virtual Kernel file systems and chroot.
105 #
106 #mount --bind /dev $ROOTFS/dev
107 #mount --bind /tmp $ROOTFS/tmp
108 mount -t proc proc $ROOTFS/proc
109 mount -t sysfs sysfs $ROOTFS/sys
110 mount -t devpts devpts $ROOTFS/dev/pts
111 mount -t tmpfs shm $ROOTFS/dev/shm
113 echo "Chrooting in $ROOTFS... "
114 chroot $ROOTFS /bin/sh --login
116 # Unmount virtual Kernel file systems on exit.
117 #
118 umount $ROOTFS/dev/shm
119 umount $ROOTFS/dev/pts
120 umount $ROOTFS/sys
121 umount $ROOTFS/proc
122 #umount $ROOTFS/tmp
123 #umount $ROOTFS/dev
125 echo "Exiting of $ROOTFS chroot environment... "
127 EOF
128 </pre>
129 <p>
130 Pour finir et tester l'environnement, il suffit de rendre le script exécutable
131 et le lancer :
132 </p>
133 <pre>
134 # chmod +x /home/slitaz/chroot_in_env.sh
135 # sh /home/slitaz/chroot_in_env.sh
136 </pre>
137 <h4>Activer le réseau</h4>
138 <p>
139 Pour avoir le réseau afin de télécharger, naviguer en mode texte et installer
140 des paquets de développement, il suffit de lancer le client DHCP sur la bonne
141 interface, exemple avec <code>eth1</code> :
142 </p>
143 <pre>
144 /# udhcpc -i eth1
145 </pre>
146 <h4>Installer des paquets</h4>
147 <p>
148 Si le réseau est fonctionnel, il suffit de recharger la liste des paquets et
149 utiliser <code>tazpkg get-install</code> pour installer de nouveaux paquets.
150 Si la connexion n'est pas possible, on peut télécharger les paquets du miroir
151 depuis un autre système, les copier dans l'environnement chrooté et les
152 installer via la commande <code>tazpkg install</code>. Pour installer la base
153 des outils de compilation :
154 </p>
155 <pre>
156 /# tazpkg recharge
157 /# tazpkg get-install slitaz-toolchain
158 </pre>
159 <p>
160 Une fois l'environnement configuré, on peut complier des applications
161 depuis les sources pour en créer des paquets, tester des scripts et autre.
162 Le chapitre <a href="development.html">développement</a> du Handbook et le
163 <a href="http://doc.slitaz.org/fr:cookbook:start">Cookbook</a> devraient aider à
164 aller plus loin.
165 </p>
166 <h4>Sortir de l'environnement</h4>
167 <p>
168 Pour sortir de l'environnement chrooté il suffit de taper <code>exit</code>,
169 le script <code>chroot_in_env.sh</code> va finir son rôle en démontant
170 le systèmes de fichiers virtuels propre au Kernel Linux :
171 </p>
172 <pre>
173 /# exit
174 #
175 </pre>
177 <!-- End of content -->
178 </div>
180 <!-- Footer. -->
181 <div id="footer">
182 <div class="footer-right"></div>
183 <a href="#top">Haut de la page</a> |
184 <a href="index.html">Table des matières</a>
185 </div>
187 <div id="copy">
188 Copyright &copy; <span class="year"></span> <a href="http://www.slitaz.org/">SliTaz</a> -
189 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
190 Documentation publiées sous
191 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
192 et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
193 </div>
195 </body>
196 </html>