|
|
(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>
| |