rev |
line source |
pankso@4
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
pankso@4
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
pankso@4
|
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
|
pankso@4
|
4 <head>
|
pankso@4
|
5 <title>SliTaz Handbook - Hacking LiveCD</title>
|
pankso@4
|
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
|
pankso@4
|
7 <meta name="description" content="modifier generer le livecd manuellement ligne de commande" />
|
pankso@4
|
8 <meta name="expires" content="never" />
|
pankso@4
|
9 <meta name="modified" content="2007-12-03 12:30:00" />
|
pankso@4
|
10 <meta name="publisher" content="www.slitaz.org" />
|
pankso@4
|
11 <meta name="author" content="Christophe Lincoln"/>
|
pankso@4
|
12 <link rel="shortcut icon" href="favicon.ico" />
|
pankso@4
|
13 <link rel="stylesheet" type="text/css" href="book.css" />
|
pankso@4
|
14 </head>
|
pankso@4
|
15 <body bgcolor="#ffffff">
|
pankso@4
|
16
|
pankso@4
|
17 <!-- Header and quick navigation -->
|
pankso@4
|
18 <div id="header">
|
pankso@4
|
19 <div align="right" id="quicknav">
|
pankso@4
|
20 <a name="top"></a>
|
pankso@4
|
21 <a href="gen-livecd.html">Générer un LiveCD</a> |
|
pankso@4
|
22 <a href="index.html">Table des matières</a>
|
pankso@4
|
23 </div>
|
pankso@4
|
24 <h1><font color="#3E1220">SliTaz Handbook</font></h1>
|
pankso@4
|
25 </div>
|
pankso@4
|
26
|
pankso@4
|
27 <!-- Content. -->
|
pankso@4
|
28 <div id="content">
|
pankso@4
|
29 <div class="content-right"></div>
|
pankso@4
|
30
|
pankso@4
|
31 <h2><font color="#DF8F06">Hacking SliTaz LiveCD</font></h2>
|
pankso@4
|
32
|
pankso@4
|
33 <ul>
|
pankso@4
|
34 <li><a href="#intro">Introduction.</a></li>
|
pankso@4
|
35 <li><a href="#pre">Organisation et préparation.</a></li>
|
pankso@4
|
36 <li><a href="#add-files">Ajouter des fichiers dans l'ISO.</a></li>
|
pankso@4
|
37 <li><a href="#isolinux">Modifier la configuration d'isolinux.</a></li>
|
pankso@4
|
38 <li><a href="#memtest">Installer et utiliser Memtest86.</a></li>
|
pankso@4
|
39 <li><a href="#rootfs">Manipuler la racine du système Live.</a></li>
|
pankso@4
|
40 <li><a href="#gen-iso">Générer une image ISO bootable avec isolinux.</a></li>
|
pankso@4
|
41 </ul>
|
pankso@4
|
42
|
pankso@4
|
43 <a name="intro"></a>
|
pankso@4
|
44 <h3><font color="#6c0023">Introduction</font></h3>
|
pankso@4
|
45 <p>
|
pankso@4
|
46 <em>Hacking SliTaz LiveCD</em> ou comment s'amuser avec l'image ISO du LiveCD,
|
pankso@4
|
47 la modifier, la personnaliser et la reconstruire à la main. A noter que vous
|
pankso@4
|
48 avez aussi la possibilité de
|
pankso@4
|
49 <a href="gen-livecd.html">créer une saveur avec Tazlito</a> et cela de. Créer
|
pankso@4
|
50 sa propre image ISO bootable ne demande que peut de temps, les étapes à suivre
|
pankso@4
|
51 sont soigneusement décrites dans ce document et sont faciles à réaliser. La
|
pankso@4
|
52 manipulation de l'images ISO permet d'ajouter des nouveaux fichiers ou de
|
pankso@4
|
53 modifier les fichiers existants sur le cdrom. L'image ISO de SliTaz fait moins
|
pankso@4
|
54 de 30 Mb et un CD-R ou CD-RW classique fournit 700 Mb, il reste donc pas mal
|
pankso@4
|
55 de place, pour mettre par exemple, vos photos afin de les montrer en
|
pankso@4
|
56 <em>live</em> via SliTaz et un diaporama propulsé par le gestionnaire
|
pankso@4
|
57 d'images GQview. Le <em>hacking</em> de l'image ISO permet de modifier les
|
pankso@4
|
58 fichiers de configuration du chargeur de démarrage (<em>boot loader</em>) et
|
pankso@4
|
59 son image <em>splash</em> ou d'en utiliser un autre tel que GRUB. Vous pouvez
|
pankso@4
|
60 aussi facilement et directement ajouter des utilitaire tel que Memtest86 (outil
|
pankso@4
|
61 servant à tester la RAM d'une machine). En utilisant les mêmes techniques, il
|
pankso@4
|
62 est également possible de modifier le contenu du système en soit, cela demande
|
pankso@4
|
63 quelques manipulations supplémentaires et un peu plus de temps... libre.
|
pankso@4
|
64 </p>
|
pankso@4
|
65 <a name="pre"></a>
|
pankso@4
|
66 <h3><font color="#6c0023">Organisation et préparation</font></h3>
|
pankso@4
|
67 <p>
|
pankso@4
|
68 Pour commencer il faut définir l'endroit ou l'on va travailler, créer un
|
pankso@4
|
69 répertoire de travail et plusieurs sous-répertoires destinés à accueillir les
|
pankso@4
|
70 différents fichiers. Le <em>hacking</em> de l'ISO peut se faire depuis un
|
pankso@4
|
71 système SliTaz ou tous autres système GNU/Linux tels que Debian, Fedora,
|
pankso@4
|
72 PCLinuxOS, Slackware, etc. Si vous utilisez SliTaz en mode LiveCD (vous pouvez
|
pankso@4
|
73 retirer le cdrom une fois SliTaz lancée en RAM et graver votre nouvelle ISO),
|
pankso@4
|
74 nous vous conseillons d'utiliser un media USB pour conserver le travail, sinon
|
pankso@4
|
75 il sera perdu à l'arrêt du système. Pour travailler nous vous proposons
|
pankso@4
|
76 d'utiliser un répertoire <code>hacked/</code> que vous pouvez créer dans
|
pankso@4
|
77 un répertoire <code>/home/slitaz</code>, à la racine de votre espace
|
pankso@4
|
78 utilisateur, ou ailleurs si vous le désirez. Utiliser un répertoire
|
pankso@4
|
79 <code>/home/slitaz</code> vous permet de stocker une image ISO originale et
|
pankso@4
|
80 de créer en options un répertoire <code>src/</code> pour télécharger
|
pankso@4
|
81 d'éventuelles paquets sources. Toutes les étapes de <em>hacking</em> peuvent
|
pankso@4
|
82 se faire en lignes de commandes via un termial X tel que XTerm ou en mode
|
pankso@4
|
83 texte et un terminal Linux. A noter que nous vous conseillons de faire les
|
pankso@4
|
84 opérations en tant que <em>root</em> afin d'éviter tous problèmes de
|
pankso@4
|
85 permissions. Pour devenir administrateur (<em>root</em>), créer le
|
pankso@4
|
86 répertoire de travail dans <code>/home/slitaz/hacked</code> et se placer
|
pankso@4
|
87 dedans :
|
pankso@4
|
88 </p>
|
pankso@4
|
89 <pre>
|
pankso@4
|
90 $ su
|
pankso@4
|
91 # mkdir -p /home/slitaz/hacked
|
pankso@4
|
92 (# mkdir -p /home/slitaz/src)
|
pankso@4
|
93 # cd /home/slitaz/hacked
|
pankso@4
|
94 </pre>
|
pankso@4
|
95 <h4>Récupérer les fichiers contenus sur l'ISO</h4>
|
pankso@4
|
96 <p>
|
pankso@4
|
97 Maintenant que vous êtes dans le répertoire de travail, il faut créer la
|
pankso@4
|
98 racine de votre cdrom modifié et récupérer les fichiers contenu dans l'ISO
|
pankso@4
|
99 original du LiveCD. C'est à dire le noyau Linux (<code>bzImage</code>), le
|
pankso@4
|
100 système de fichiers compressé (<code>rootfs.gz</code>) et les fichiers du
|
pankso@4
|
101 chargeur de démarrage Isolinux. Pour récupérer ces fichiers vous avez deux
|
pankso@4
|
102 solutions, soit les prendre depuis un cdrom gravé, soit directement depuis
|
pankso@4
|
103 une image ISO local. Pour créer la racine de votre CD (<code>rootcd</code>)
|
pankso@4
|
104 et copier les fichiers depuis un périphérique cdrom reconnu comme
|
pankso@4
|
105 <code>/dev/cdrom</code> et monté sur <code>/media/cdrom</code> :
|
pankso@4
|
106 </p>
|
pankso@4
|
107 <pre>
|
pankso@4
|
108 # mount -t iso9660 /dev/cdrom /media/cdrom
|
pankso@4
|
109 # mkdir rootcd
|
pankso@4
|
110 # cp -a /media/cdrom/* rootcd
|
pankso@4
|
111 </pre>
|
pankso@4
|
112 <p>
|
pankso@4
|
113 Pour monter une image ISO en <em>loop</em> sur le répertoire temporaire
|
pankso@4
|
114 nommé <code>/tmp/loop</code> (avec l'image ISO <code>slitaz-cooking.iso</code>
|
pankso@4
|
115 préalablement téléchargée ou copiée), créer la racine du CD, copier les
|
pankso@4
|
116 fichiers et démonter l'image ISO :
|
pankso@4
|
117 </p>
|
pankso@4
|
118 <pre>
|
pankso@4
|
119 # mkdir /tmp/loop
|
pankso@4
|
120 # mount -o loop slitaz-cooking.iso /tmp/loop
|
pankso@4
|
121 # mkdir rootcd
|
pankso@4
|
122 # cp -a /tmp/loop/* rootcd
|
pankso@4
|
123 # umount /tmp/loop
|
pankso@4
|
124 </pre>
|
pankso@4
|
125 <p>
|
pankso@4
|
126 Voilà, tous les fichiers nécessaires devraient être présents dans le répertoire
|
pankso@4
|
127 <code>rootcd/</code>, pour vous en assurer, vous pouvez pouver lister
|
pankso@4
|
128 récursivement les fichiers via la commande <code>ls</code> :
|
pankso@4
|
129 </p>
|
pankso@4
|
130 <pre>
|
pankso@4
|
131 # ls -R rootcd
|
pankso@4
|
132 </pre>
|
pankso@4
|
133 <a name="add-files"></a>
|
pankso@4
|
134 <h3><font color="#6c0023">Ajouter des fichiers dans l'ISO</font></h3>
|
pankso@4
|
135 <p>
|
pankso@4
|
136 L'ajout de divers fichiers et répertoires dans l'image ISO consiste
|
pankso@4
|
137 simplement à copier des données à la racine du cdrom (<code>rootcd/</code>)
|
pankso@4
|
138 et à générer une nouvelle image. Les données ajoutées peuvent être classées
|
pankso@4
|
139 dans un ou des répertoires préalablement créés à la racine du CD. Une fois
|
pankso@4
|
140 l'image ISO gravée sur un CD-R/CD-RW vous pourrez utiliser SliTaz comme
|
pankso@4
|
141 avant, monter le cdrom sur <code>/media/cdrom</code> et naviguer dans vos
|
pankso@4
|
142 données graphiquement avec emelFM2, dans un terminal avec Clex ou en ligne de
|
pankso@4
|
143 commandes. Vos données seront aussi lisibles depuis tous les systèmes GNU/Linux,
|
pankso@4
|
144 BSD, et même... Windows.
|
pankso@4
|
145 </p>
|
pankso@4
|
146 <h4>Créer un ou des répertoires et copier des données</h4>
|
pankso@4
|
147 <p>
|
pankso@4
|
148 Pour créer et copier des fichiers vous pouvez commencer par utiliser la
|
pankso@4
|
149 ligne de commande et continuer graphiquement en tant que simple utilisateur.
|
pankso@4
|
150 Nous allons créer un répertoires <code>images/</code> en tant que <em>root</em>
|
pankso@4
|
151 et changer les permissions pour que tous les utilisateurs puissent écrire
|
pankso@4
|
152 dedans :
|
pankso@4
|
153 </p>
|
pankso@4
|
154 <pre>
|
pankso@4
|
155 # mkdir rootcd/images
|
pankso@4
|
156 # chmod 777 rootcd/images
|
pankso@4
|
157 </pre>
|
pankso@4
|
158 <p>
|
pankso@4
|
159 Maintenant qu'un nouveau répertoire existe en écriture pour tous, il faut le
|
pankso@4
|
160 remplir. Une fois que vous avez fini de copier vos données, il suffit de
|
pankso@4
|
161 <a href="#gen-iso">générer une nouvelle image ISO bootable</a>.
|
pankso@4
|
162 </p>
|
pankso@4
|
163 <a name="isolinux"></a>
|
pankso@4
|
164 <h3><font color="#6c0023">Modifier la configuration d'isolinux</font></h3>
|
pankso@4
|
165 <p>
|
pankso@4
|
166 Modifier la configuration d'isolinux vous permet de créer des entrées
|
pankso@4
|
167 personnalisées avec des options de <em>boot</em> prédéfinies, vous pouvez par
|
pankso@4
|
168 exemple ajouter un <code>label</code> lançant SliTaz avec les options
|
pankso@4
|
169 <code>lang=fr</code> et <code>kmap=fr_CH</code>. Au niveau graphisme, vous
|
pankso@4
|
170 pouvez facilement changer l'image <em>splash</em> s'affichant au démarrage.
|
pankso@4
|
171 L'application <code>isolinux</code> est le chargeur de démarrage
|
pankso@4
|
172 (<em>boot loader</em>) du LiveCD, il est fournit par le paquet Syslinux.
|
pankso@4
|
173 L'archive source de Syslinux fournit diverses applications dont le rôle est
|
pankso@4
|
174 de démarrer un système GNU/Linux. La version binaire <code>isolinux.bin</code>
|
pankso@4
|
175 est déstinée aux image ISO, ce chargeur de démarrage est simple, rapide et
|
pankso@4
|
176 facilement configurable via un fichier de configuration principale, éditable
|
pankso@4
|
177 graphiquement ou dans un terminal avec votre éditeur de texte préféré.
|
pankso@4
|
178 La syntaxe du fichier de configuration <code>isolinux.cfg</code> est facile
|
pankso@4
|
179 à comprendre, pour ajouter de nouvelles entrées il suffit de copier/coller
|
pankso@4
|
180 en utilisant le fichier original. Pour éditer graphiquement le fichier
|
pankso@4
|
181 <code>isolinux.cfg</code> avec Leafpad :
|
pankso@4
|
182 </p>
|
pankso@4
|
183 <pre>
|
pankso@4
|
184 # leafpad rootcd/boot/isolinux/isolinux.cfg &
|
pankso@4
|
185 </pre>
|
pankso@4
|
186 <h4>Fichier de configuration isolinux.cfg</h4>
|
pankso@4
|
187 <p>
|
pankso@4
|
188 Le fichier <code>isolinux.cfg</code>, fourni en standard sur le LiveCD de
|
pankso@4
|
189 SliTaz, commence par la valeur <code>display</code>, cette valeur permet
|
pankso@4
|
190 d'afficher tel quel un fichier texte ou d'afficher un fichier
|
pankso@4
|
191 (<code>isolinux.msg</code>) utilisant des caractères ASCII 24 et permettant
|
pankso@4
|
192 d'afficher du texte avec une image <em>splash</em>. La valeur
|
pankso@4
|
193 <code>default</code> défini le nom du <code>label</code> à démarrer par
|
pankso@4
|
194 défaut après le temps d'attente (<code>timeout</code>). <em>Timeout</em>
|
pankso@4
|
195 correspond au nombre de secondes à attendre avant de booter, vous pouvez le
|
pankso@4
|
196 mettre à 0, hôter la ligne pour démarrer instantanément ou choisir un temps
|
pankso@4
|
197 d'attente plus long tel que 80 s. Pour finir, le <code>prompt</code> peut
|
pankso@4
|
198 être désactivé via la valeur <code>0</code>, les valeurs F1, F2, F3
|
pankso@4
|
199 affichent des fichiers d'aides et F4 est un display au format texte :
|
pankso@4
|
200 </p>
|
pankso@4
|
201 <pre class="script">
|
pankso@4
|
202 display isolinux.msg
|
pankso@4
|
203 default slitaz
|
pankso@4
|
204 label slitaz
|
pankso@4
|
205 kernel /boot/bzImage
|
pankso@4
|
206 append initrd=/boot/rootfs.gz rw root=/dev/null vga=788
|
pankso@4
|
207 implicit 0
|
pankso@4
|
208 prompt 1
|
pankso@4
|
209 timeout 80
|
pankso@4
|
210 F1 help.txt
|
pankso@4
|
211 F2 options.txt
|
pankso@4
|
212 F3 isolinux.msg
|
pankso@4
|
213 F4 display.txt
|
pankso@4
|
214 </pre>
|
pankso@4
|
215 <p>
|
pankso@4
|
216 Exemple d'un label <code>slitazfr</code> que vous pouvez ajouter à l'orginal,
|
pankso@4
|
217 pour configurer directement la langue du système en français et avoir le
|
pankso@4
|
218 clavier Belge :
|
pankso@4
|
219 </p>
|
pankso@4
|
220 <pre class="script">
|
pankso@4
|
221 label slitazfr
|
pankso@4
|
222 kernel /boot/bzImage
|
pankso@4
|
223 append initrd=/boot/rootfs.gz rw root=/dev/null lang=fr kmap=be
|
pankso@4
|
224 </pre>
|
pankso@4
|
225 <p>
|
pankso@4
|
226 Une fois que vous avez fini de modifier le fichier de configuration, il ne
|
pankso@4
|
227 faut pas oublier d'enregistrer vos changements avant de
|
pankso@4
|
228 <a href="#gen-iso">générer une nouvelle image ISO bootable</a> avec isolinux.
|
pankso@4
|
229 </p>
|
pankso@4
|
230 <a name="memtest"></a>
|
pankso@4
|
231 <h3><font color="#6c0023">Installer et utiliser Memtest86</font></h3>
|
pankso@4
|
232 <p>
|
pankso@4
|
233 L'application memtest86 (92 ko) est un outil autonome de test de mémoire vive
|
pankso@4
|
234 (RAM). Memetes86 permet de tester en profondeur l'état des barrettes de RAM et
|
pankso@4
|
235 de déceler une quelconque défaillance. L'outil s'installe dans le répertoire
|
pankso@4
|
236 <code>boot/</code> de la racine du cdrom et se lance directement au démarrage
|
pankso@4
|
237 de la machine en tapant simplement <code>memtest</code> au prompt d'isolinux.
|
pankso@4
|
238 Direction <code>/home/slitaz/src</code> (si le répertoire n'existe pas :
|
pankso@4
|
239 <code>mkdir -p /home/slitaz/src</code>) pour télécharger les sources et les
|
pankso@4
|
240 désarchiver :
|
pankso@4
|
241 </p>
|
pankso@4
|
242 <pre>
|
pankso@4
|
243 # cd /home/slitaz/src
|
pankso@4
|
244 # wget http://www.memtest86.com/memtest86-3.3.tar.gz
|
pankso@4
|
245 # tar xzf memtest86-3.3.tar.gz
|
pankso@4
|
246 </pre>
|
pankso@4
|
247 <p>
|
pankso@4
|
248 Le paquet source de Memtest86 étant désarchivé (vous y trouverez un fichier
|
pankso@4
|
249 <code>README</code> en anglais donnant des informations sur l'outil), vous
|
pankso@4
|
250 allez pouvoir l'installer dans le <em>root CD</em> de votre ISO hackée. En
|
pankso@4
|
251 partant du principe que vous utilisez un répertoire de travail
|
pankso@4
|
252 <code>/home/slitaz/hacked</code>, nous allons copier le binaire précompilé
|
pankso@4
|
253 dans le répertoire <code>boot/</code> de la racine du CD :
|
pankso@4
|
254 </p>
|
pankso@4
|
255 <pre>
|
pankso@4
|
256 # cp memtest86-3.3/precomp.bin \
|
pankso@4
|
257 /home/slitaz/hacked/rootcd/boot/memtest
|
pankso@4
|
258 </pre>
|
pankso@4
|
259 <p>
|
pankso@4
|
260 Maintenant que le binaire est installé dans le <em>root CD</em>, il suffit
|
pankso@4
|
261 d'ajouter une entrée pour Memtest86 dans le fichier de configuration d'isolinux
|
pankso@4
|
262 et de <a href="#gen-iso">générer une nouvelle image ISO bootable</a>.
|
pankso@4
|
263 Direction <code>/home/slitaz/hacked</code> pour éditer le fichier
|
pankso@4
|
264 <code>isolinux.cfg</code> avec LeafPad par exemple :
|
pankso@4
|
265 </p>
|
pankso@4
|
266 <pre>
|
pankso@4
|
267 # cd /home/slitaz/hacked
|
pankso@4
|
268 # leafpad rootcd/boot/isolinux/isolinux.cfg &
|
pankso@4
|
269 </pre>
|
pankso@4
|
270 <pre class="script">
|
pankso@4
|
271 label memtest
|
pankso@4
|
272 kernel /boot/memtest
|
pankso@4
|
273 </pre>
|
pankso@4
|
274 <p>
|
pankso@4
|
275 Site web officiel de Memtest86 :
|
pankso@4
|
276 <a href="http://www.memtest86.com/">http://www.memtest86.com/</a>
|
pankso@4
|
277 </p>
|
pankso@4
|
278 <a name="rootfs"></a>
|
pankso@4
|
279 <h3><font color="#6c0023">Manipuler la racine du système Live</font></h3>
|
pankso@4
|
280 <p>
|
pankso@4
|
281 La modification du système Live vous permet par exemple d'ajouter rapidement
|
pankso@4
|
282 un nouvel utilisateur avec mot de passe, de personnaliser le graphisme ou
|
pankso@4
|
283 d'ajouter des commandes exécutées automatiquement au démarrage du LiveCD. Les
|
pankso@4
|
284 opérations nécessaires à la modification du système de fichier racine (
|
pankso@4
|
285 <em>root file system</em>) sont : extraire le système du fichier compresé
|
pankso@4
|
286 <code>rootfs.gz</code>, modfier, reconstruire l'image du système compressé
|
pankso@4
|
287 et générer une nouvelle ISO. En partant du principe que vous avez déjà
|
pankso@4
|
288 <a href="#pre">préparé votre répertoire de travail</a>, il faut commencer
|
pankso@4
|
289 par créer un répertoire destiné à contenir les fichiers du système modifiable.
|
pankso@4
|
290 Le système racine compressé étant nommé <code>rootfs.gz</code>, nous vous
|
pankso@4
|
291 proposons d'utiliser un répertoire <code>rootfs/</code> pour l'extraire.
|
pankso@4
|
292 Direction le répertoire de travail <code>hacked/</code>, création du
|
pankso@4
|
293 répertoire racine et copie du système compressé depuis le répertoire
|
pankso@4
|
294 <code>rootcd/boot/</code> (la racine du cdrom) :
|
pankso@4
|
295 </p>
|
pankso@4
|
296 <pre>
|
pankso@4
|
297 # cd /home/slitaz/hacked
|
pankso@4
|
298 # mkdir rootfs
|
pankso@4
|
299 # cp rootcd/boot/rootfs.gz rootfs
|
pankso@4
|
300 </pre>
|
pankso@4
|
301 <p>
|
pankso@4
|
302 Maintenant que vous avez une copie du système compressé, il suffit de le
|
pankso@4
|
303 décompresser et de le désarchiver avec <code>cpio</code>. Techniquement : Le
|
pankso@4
|
304 fichier <code>rootfs.gz</code> est une archive Cpio compressé avec LZMA ou
|
pankso@4
|
305 Gzip, elle est reconnue comme une image <code>initramfs</code> par le noyau
|
pankso@4
|
306 Linux. Lors du démarrage de la machine, le noyau se charge en mémoire et
|
pankso@4
|
307 décompresse l'image du système en mémoire vive pour finir par exécuter les
|
pankso@4
|
308 scripts d'initialisation. Pour extraire le système dans le répertoire
|
pankso@4
|
309 <code>rootfs/</code> et supprimer la copie désarchivée (Rappel : vous pouvez
|
pankso@4
|
310 copier/coller les commandes) :
|
pankso@4
|
311 </p>
|
pankso@4
|
312 <pre>
|
pankso@4
|
313 # cd rootfs
|
pankso@4
|
314 # (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so) | cpio -id
|
pankso@4
|
315 # rm rootfs rootfs.gz
|
pankso@4
|
316 </pre>
|
pankso@4
|
317 <p>
|
pankso@4
|
318 Le système est prêt à être modifié, vous pouvez lister les fichiers contenus
|
pankso@4
|
319 à la racine de votre système hackable en utilisant la commande <code>ls</code>.
|
pankso@4
|
320 </p>
|
pankso@4
|
321 <h4>Modifier un fichier</h4>
|
pankso@4
|
322 <p>
|
pankso@4
|
323 Pour faire simple et vous aider comprendre le principe, nous allons modifier
|
pankso@4
|
324 un fichier script dans le but d'ajouter deux commandes exécutées
|
pankso@4
|
325 automatiquement à chaque démarrage du LiveCD. La cible est :
|
pankso@4
|
326 <code>etc/init.d/local.sh</code>, il suffit de l'ouvrir avec votre éditeur de
|
pankso@4
|
327 texte préféré tel que Geany :
|
pankso@4
|
328 </p>
|
pankso@4
|
329 <pre>
|
pankso@4
|
330 # geany etc/init.d/local.sh &
|
pankso@4
|
331 </pre>
|
pankso@4
|
332 <p>
|
pankso@4
|
333 Nous allons ajouter une commande affichant un message et faisant dormir le
|
pankso@4
|
334 système 4 secondes (c'est juste pour se faire la main). Example de lignes à
|
pankso@4
|
335 ajouter au script déstiné aux commandes locales :
|
pankso@4
|
336 </p>
|
pankso@4
|
337 <pre class="script">
|
pankso@4
|
338 echo "* Hacked SliTaz version booting..."
|
pankso@4
|
339 sleep 4
|
pankso@4
|
340 </pre>
|
pankso@4
|
341 <h4>Reconstruire l'image du système compressée</h4>
|
pankso@4
|
342 <p>
|
pankso@4
|
343 Une fois les modifications terminées, vous pouvez reconstruire une image
|
pankso@4
|
344 compressée de votre système modifié en utilisant <code>find</code> pour
|
pankso@4
|
345 trouver les fichiers, <code>cpio</code> pour archiver, <code>lzma</code> ou
|
pankso@4
|
346 <code>gzip </code> pour compresser et des pipes <code>|</code> pour connecter
|
pankso@4
|
347 le tout. Cette commande doit être lancée depuis le répertoire racine du
|
pankso@4
|
348 système (<code>rootfs/</code>) et crée un fichier compressé
|
pankso@4
|
349 <code>rootfs.gz</code> dans le répertoire précédant :
|
pankso@4
|
350 </p>
|
pankso@4
|
351 <pre>
|
pankso@4
|
352 # find . -print | cpio -o -H newc | lzma e -si -so > ../rootfs.gz
|
pankso@4
|
353 Ou avec gzip :
|
pankso@4
|
354 # find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz
|
pankso@4
|
355 </pre>
|
pankso@4
|
356 <p>
|
pankso@4
|
357 Pour finir il suffit de copier votre système compressé dans le répertoire
|
pankso@4
|
358 <code>boot/</code> de la racine du CD et de <a href="#gen-iso"
|
pankso@4
|
359 >générer une nouvelle image ISO bootable</a> avec isolinux. Pour copier le
|
pankso@4
|
360 <em>rootfs</em> en écrasant l'actuel, direction le répertoire de travail :
|
pankso@4
|
361 </p>
|
pankso@4
|
362 <pre>
|
pankso@4
|
363 # cd ../
|
pankso@4
|
364 # cp -a rootfs.gz rootcd/boot
|
pankso@4
|
365 </pre>
|
pankso@4
|
366 <a name="gen-iso"></a>
|
pankso@4
|
367 <h3><font color="#6c0023">Générer une image ISO bootable avec isolinux</font></h3>
|
pankso@4
|
368 <p>
|
pankso@4
|
369 La suite de commandes permettant de créer une image avec le
|
pankso@4
|
370 <em>boot loader</em> <code>isolinux</code>, utilise l'application
|
pankso@4
|
371 <code>genisoimage</code> suivie de nombreuses options. Le nom de l'ISO est
|
pankso@4
|
372 spécifié au début, après l'option <code>-o</code> et le répertoire racine
|
pankso@4
|
373 (<code>rootcd/</code>) tout à la fin, après l'option
|
pankso@4
|
374 <code>-boot-info-table</code> :
|
pankso@4
|
375 </p>
|
pankso@4
|
376 <pre>
|
pankso@4
|
377 # genisoimage -R -o slitaz-hacked.iso -b boot/isolinux/isolinux.bin \
|
pankso@4
|
378 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
|
pankso@4
|
379 -V "SliTaz-Hacked" -input-charset iso8859-1 -boot-info-table rootcd
|
pankso@4
|
380 </pre>
|
pankso@4
|
381 <p>
|
pankso@4
|
382 Si vous désirez vérifier le contenu de l'ISO avant gravage, il suffit
|
pankso@4
|
383 de monter l'image en <code>loop</code> et de lister les fichiers. Sur SliTaz
|
pankso@4
|
384 et la plupart des systèmes GNU/Linux, vous pouvez graver des images au
|
pankso@4
|
385 format ISO avec l'utilitaire <code>wodim</code> fournit par <a
|
pankso@4
|
386 href="utilities.html#cdrkit">cdrkit</a>.
|
pankso@4
|
387 </p>
|
pankso@4
|
388 <h4>Générer de nouvelles ISO via un script</h4>
|
pankso@4
|
389 <p>
|
pankso@4
|
390 Si vous testez plusieurs possibilités et que vous êtes amené à souvent générer
|
pankso@4
|
391 des nouvelles images ISO, vous aurez peut être envie de semi-automatiser les
|
pankso@4
|
392 opérations via un simple petit script SHell. Ce petit script peut être créé
|
pankso@4
|
393 en ligne de commandes ou édité graphiquement, mais il ne faut oublier de le
|
pankso@4
|
394 rendre exécutable. Vous pouvez créer le script avec la commande
|
pankso@4
|
395 <code>cat</code>, à noter que <code>EOF</code> signifie <em>End Of File</em>,
|
pankso@4
|
396 c'est la que le fichier se termine. Nous vous proposons de nommer le script
|
pankso@4
|
397 <code>gen_hacked_iso.sh</code> et d'utiliser deux variables permettant de
|
pankso@4
|
398 rapidement changer le nom de l'image ISO et le chemin vers le répertoire
|
pankso@4
|
399 racine du cdrom :
|
pankso@4
|
400 </p>
|
pankso@4
|
401 <pre>
|
pankso@4
|
402 # cat > gen_hacked_iso.sh << "EOF"
|
pankso@4
|
403 </pre>
|
pankso@4
|
404 <pre class="script">
|
pankso@4
|
405 #!/bin/sh
|
pankso@4
|
406 # Gen a new hacked ISO image.
|
pankso@4
|
407 #
|
pankso@4
|
408 ISO_NAME="slitaz-hacked.iso"
|
pankso@4
|
409 ROOTCD="rootcd"
|
pankso@4
|
410
|
pankso@4
|
411 genisoimage -R -o $ISO_NAME -b boot/isolinux/isolinux.bin \
|
pankso@4
|
412 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
|
pankso@4
|
413 -V "SliTaz-Hacked" -input-charset iso8859-1 -boot-info-table $ROOTCD
|
pankso@4
|
414
|
pankso@4
|
415 EOF
|
pankso@4
|
416 </pre>
|
pankso@4
|
417 <p>
|
pankso@4
|
418 Pour utiliser le script, il suffit de le rendre exécutable et de l'exécuter :
|
pankso@4
|
419 </p>
|
pankso@4
|
420 <pre>
|
pankso@4
|
421 # chmod +x gen_hacked_iso.sh
|
pankso@4
|
422 # ./gen_hacked_iso.sh
|
pankso@4
|
423 </pre>
|
pankso@4
|
424
|
pankso@4
|
425 <!-- End of content -->
|
pankso@4
|
426 </div>
|
pankso@4
|
427
|
pankso@4
|
428 <!-- Footer. -->
|
pankso@4
|
429 <div id="footer">
|
pankso@4
|
430 <div class="footer-right"></div>
|
pankso@4
|
431 <a href="#top">Haut de la page</a> |
|
pankso@4
|
432 <a href="index.html">Table des matières</a>
|
pankso@4
|
433 </div>
|
pankso@4
|
434
|
pankso@4
|
435 <div id="copy">
|
pankso@4
|
436 Copyright © 2007 <a href="http://www.slitaz.org/">SliTaz</a> -
|
pankso@4
|
437 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
|
pankso@4
|
438 Documentation publiées sous
|
pankso@4
|
439 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
|
pankso@4
|
440 et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
|
pankso@4
|
441 </div>
|
pankso@4
|
442
|
pankso@4
|
443 </body>
|
pankso@4
|
444 </html>
|