« Franciser une image ISO live » : différence entre les versions

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
m (→‎Modifier le fichier image ISO : reformulation titre)
(suppression de la page devenue obsolète (cette page n'était liée à aucun lien))
Balise : Blanchiment
 
(47 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
== Introduction ==
J'en avais vraiment marre de rajouter manuellement (avec le clavier en mode ''qwerty'') la longue ligne des options de boot suivante qui permet de démarrer ma '''debian live''' directement en français.
'''<pre style="color: blue"> lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-model=pc105 timezone=Europe/Paris utc=yes</pre>'''
Et puis, comme je suis un très très gros fainéant pour me lancer dans la création d'une nouvelle image ISO à chaque nouvelle version, voilà comment je fais depuis un petit moment.
== Description ==
J'ai décidé d'ajouter ces options de boot directement dans l'image ISO téléchargée, juste avant de la graver ou copier sur une clef USB.


Comme le menu affiché au moment du boot dépend du contenu du fichier '''/isolinux/live.cfg''' de l'image ISO<br />
dont voici un extrait du contenu (les deux premiers "label"s):
<pre>
label live-amd64
menu label ^Live (amd64)
menu default
linux /live/vmlinuz
initrd /live/initrd.img
append boot=live config quiet splash
label live-amd64-failsafe
menu label ^Live (amd64 failsafe)
linux /live/vmlinuz
initrd
</pre>
Il me faudra donc modifier la ligne :
<pre style="color: red"> append boot=live config quiet splash</pre>
de façon à ce qu'elle devienne :
<pre style="color: green"> append boot=live config quiet splash lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-model=pc105 timezone=Europe/Paris utc=yes</pre>
Mais pour cela, il me faudra d'abord connaître exactement la position de ce texte dans le fichier image ISO téléchargé.
== Recherche avec l'éditeur '''hexcurse''' : ==
'''hexcurse''' est un éditeur hexadécimal qui pourrait permettre de modifier directement le fichier image ISO, <br />
mais comme il faut insérer ces paramètres dans le texte et donc déplacer la partie de texte qui suivait la ligne des paramètres, etc…, <br />
ça fait beaucoup trop de manipulations à faire pour moi, et puis, comme je vous l'ai déjà dit plus haut : je suis vraiment très très fainéant.
Toutefois, cet éditeur permet de rechercher la position d'une chaîne de caractère dans un fichier, et ça, ça m'intéresse beaucoup,<br />
alors, j'entre la commande suivante :
<code>michel@debG53SW:~$ hexcurse ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop.iso</code>
[[fichier:Hexcurse-01.png|640px|hexcurse]] <br />
L'écran affiché présente alors le contenu du fichier image ISO en '''Hexa''' (à gauche) et '''ASCII''' (à droite).
[[fichier:Hexcurse-02.png|640px|hexcurse - aide]] <br />
La touche '''"F1"''' permet d'obtenir une fenêtre d'aide.
'''NOTE:''' Pour utiliser les touches de raccourcis de '''hexcurse''', <br />
vous devrez peut-être désactiver les touches de raccourcis de la fenêtre de terminal virtuel (voir [http://www.debian-fr.org/emulateur-de-terminal-et-raccourcis-claviers-t48963.html ce post]).
{| class="wikitable" width="50%"
! width="5%"| Touche
! Description
|-{{ligne grise}}
| '''"F5"'''
| Permet de faire une recherche.
|-{{ligne grise}}
| '''"F8"'''
| Quitte "hexcurse".
|-{{ligne grise}}
| '''"TAB"'''
| Est une touche bascule qui permet de positionner le curseur dans chaque partie de l'écran affiché (Hexa ou Ascii).
|-{{ligne grise}}
| '''"CTRL-z"'''
| Anulle les modifications effectuées.
|-{{ligne grise}}
| '''"Esc"'''
| Anulle la demande de ''"sauvegarde"'', ''"ouverture"'', ''"aller à"'' , ou ''"recherche"'' en cours.
|-{{ligne grise}}
|}
Maintenant que je sais comment faire, je ferme la fenêtre d'aide en utilisant la touche '''"Esc"''',  <br />
et je positionne le curseur dans la fenêtre '''Ascii''' avec la touche '''"Tab"''' afin de faire la recherche sur les caractères '''Ascii'''.
[[fichier:Hexcurse-04.png|640px|hexcurse - En bas à gauche -> Invite pour entrer la chaîne à rechercher.]] <br />
Après avoir appuyé sur la touche '''"F5"''', en bas à gauche de l'écran s'affiche une invite me proposant d'entrer la chaîne de caractères à rechercher. <br />
Je réponds alors en entrant la chaîne de caractères : '''live-amd64''' et je valide ma saisie avec la touche habituelle : '''"Entrée"'''.
[[fichier:Hexcurse-03.png|640px|hexcurse - "live-amd64" a été trouvé !]] <br />
La recherche prend un petit peu de temps (35 secondes) mais il s'agit quand même d'un très gros fichier, puis le texte recherché est enfin trouvé. <br />
Mais il me faut positionner le curseur au début de la ligne, c'est à dire juste après le premier octet '''"null"''' précédent, sur le premier "'''l'''" de "'''l'''abel".
En haut à gauche de la fenêtre, on peut lire le décalage depuis le début du fichier : '''33807000''', mais attention, il s'agit d'une valeur hexadécimale.
Pour convertir cette valeur hexadécimale en valeur décimale, j'utilise la fonction '''printf''' :
<code>
michel@debG53SW:~$ printf "%d\n" 0x33807000
864055296
</code>
== Extraire, avec '''dd''', le texte à modifier ==
'''dd''' permet de lire et écrire de façon "brute", donc dans un fichier de format quelconque,<br />
il conviendra parfaitement pour extraire et replacer une partie du fichier de l'image ISO à modifier.
<code>
michel@debG53SW:~$ dd bs=1 count=512 skip=864055296 if=~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop.iso of=fichTemp.txt
512+0 enregistrements lus
512+0 enregistrements écrits
512 octets (512 B) copiés, 0,00403728 s, 127 kB/s
michel@debG53SW:~$
</code>
Je visualise avec '''hexdump''' les 512 octets récupérés :
<code>
michel@debG53SW:~$ hexdump -Cv fichTemp.txt
00000000  6c 61 62 65 6c 20 6c 69  76 65 2d 61 6d 64 36 34  |label live-amd64|
00000010  0a 09 6d 65 6e 75 20 6c  61 62 65 6c 20 5e 4c 69  |..menu label ^Li|
00000020  76 65 20 28 61 6d 64 36  34 29 0a 09 6d 65 6e 75  |ve (amd64)..menu|
00000030  20 64 65 66 61 75 6c 74  0a 09 6c 69 6e 75 78 20  | default..linux |
00000040  2f 6c 69 76 65 2f 76 6d  6c 69 6e 75 7a 0a 09 69  |/live/vmlinuz..i|
00000050  6e 69 74 72 64 20 2f 6c  69 76 65 2f 69 6e 69 74  |nitrd /live/init|
00000060  72 64 2e 69 6d 67 0a 09  61 70 70 65 6e 64 20 62  |rd.img..append b|
00000070  6f 6f 74 3d 6c 69 76 65  20 63 6f 6e 66 69 67 20  |oot=live config |
00000080  71 75 69 65 74 20 73 70  6c 61 73 68 0a 0a 6c 61  |quiet splash..la|
00000090  62 65 6c 20 6c 69 76 65  2d 61 6d 64 36 34 2d 66  |bel live-amd64-f|
000000a0  61 69 6c 73 61 66 65 0a  09 6d 65 6e 75 20 6c 61  |ailsafe..menu la|
000000b0  62 65 6c 20 5e 4c 69 76  65 20 28 61 6d 64 36 34  |bel ^Live (amd64|
000000c0  20 66 61 69 6c 73 61 66  65 29 0a 09 6c 69 6e 75  | failsafe)..linu|
000000d0  78 20 2f 6c 69 76 65 2f  76 6d 6c 69 6e 75 7a 0a  |x /live/vmlinuz.|
000000e0  09 69 6e 69 74 72 64 20  2f 6c 69 76 65 2f 69 6e  |.initrd /live/in|
000000f0  69 74 72 64 2e 69 6d 67  0a 09 61 70 70 65 6e 64  |itrd.img..append|
00000100  20 62 6f 6f 74 3d 6c 69  76 65 20 63 6f 6e 66 69  | boot=live confi|
00000110  67 20 6d 65 6d 74 65 73  74 20 6e 6f 61 70 69 63  |g memtest noapic|
00000120  20 6e 6f 61 70 6d 20 6e  6f 64 6d 61 20 6e 6f 6d  | noapm nodma nom|
00000130  63 65 20 6e 6f 6c 61 70  69 63 20 6e 6f 6d 6f 64  |ce nolapic nomod|
00000140  65 73 65 74 20 6e 6f 73  6d 70 20 6e 6f 73 70 6c  |eset nosmp nospl|
00000150  61 73 68 20 76 67 61 3d  6e 6f 72 6d 61 6c 0a 00  |ash vga=normal..|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000200
michel@debG53SW:~$
</code>
Comme on peut le constater, les 161 derniers octets sont à 0, il y aura largement assez de place pour insérer les options.
== Ajouter les options avec '''sed''' ==
Je rajoute les options à la suite de "quiet splash" en utilisant '''sed''' :
<code>
michel@debG53SW:~$ sed -i 's/quiet splash/quiet splash lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-model=pc105 timezone=Europe\/Paris utc=yes/' fichTemp.txt
</code>
Je vérifie que les options ont bien été ajoutées :
<code>
michel@debG53SW:~$ cat fichTemp.txt
label live-amd64
menu label ^Live (amd64)
menu default
linux /live/vmlinuz
initrd /live/initrd.img
append boot=live config quiet splash lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-model=pc105 timezone=Europe/Paris utc=yes
label live-amd64-failsafe
menu label ^Live (amd64 failsafe)
linux /live/vmlinuz
initrd /live/initrd.img
append boot=live config memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal
michel@debG53SW:~$
</code>
Bien sûr, la taille du fichier est passée de 512 à 620 octets :
<code>
michel@debG53SW:~$ ls -l fichTemp.txt
-rw-r--r-- 1 michel michel 620 juil.  7 11:50 fichTemp.txt
michel@debG53SW:~$
</code>
Mais je ne recopierai que les 512 premiers caractères de ce fichier dans l'image ISO.
== Recopier 512 octets dans le fichier image ISO ==
Avant tout, je vais sauvegarder le fichier original en en faisant une copie :
<code>
michel@debG53SW:~$ cp ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop.iso ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop-original.iso
</code>
Maintenant, je replace les 512 premiers octets du fichier '''fichTemp.txt''' dans le fichier image ISO avec '''dd''' :
<code>
michel@debG53SW:~$ dd conv=notrunc bs=1 count=512 seek=864055296 if=fichTemp.txt of=~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop.iso
512+0 enregistrements lus
512+0 enregistrements écrits
512 octets (512 B) copiés, 0,00166931 s, 307 kB/s
michel@debG53SW:~$
</code>
== Tester l'image ISO avec '''kvm''' ==
Je teste le démarrage de l'image ISO avec '''kvm''' (ou '''VirtualBox''') :
<code>
michel@debG53SW:~$ kvm -sdl -usbdevice mouse -m 2G -cpu host -cdrom ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop.iso -boot d
</code>
Un appui sur la touche "'''Tab'''" me permet de constater que les options ajoutées sont bien là,<br />
et le lancement de l'image ISO "'''debian live'''" me permet de constater que la francisation de l'interface graphique de '''Xfce''' est bien fonctionnelle.
Je peux donc maintenant utiliser ce fichier image ISO "francisé" pour préparer mon périphérique de boot (DVD ou USB),<br />
et "faire le ménage" :
<code>
michel@debG53SW:~$ rm fichTemp.txt ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop-original.iso
</code>

Dernière version du 15 octobre 2022 à 03:45