|
|
(36 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.
| |
| <code> lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-model=pc105 timezone=Europe/Paris utc=yes</code>
| |
| 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'[http://caesar.acc.umu.se/debian-cd/current-live/amd64/iso-hybrid/debian-live-7.5.0-amd64-xfce-desktop.iso|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-06.png|640px|En bas, à gauche -> Enter ascii value (): live-amd64]] <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-05.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".
| |
|
| |
| Une fois le curseur bien positionné, en haut à gauche de la fenêtre, on pourra lire le décalage depuis le début du fichier :<br />
| |
| '''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 -m 2G -cpu host -boot d -cdrom ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop.iso
| |
| </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).
| |
|
| |
| Il ne reste plus qu'à supprimer les fichiers devenus inutiles :
| |
| <code>
| |
| michel@debG53SW:~$ rm fichTemp.txt ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop-original.iso
| |
| </code>
| |
| == Ou alors, utiliser un script ==
| |
| <code>
| |
| #!/bin/sh
| |
|
| |
| #-------------------------------------------------------------------------------------------------
| |
| #
| |
| # NOM DU SCRIPT: IsoLive2FR.sh
| |
| #
| |
| # BUT: Ajouter les paramètres de boot à une image ISO Live debian
| |
| # de façon à ce qu'elle démarre directement en Français.
| |
| #
| |
| # DATE: 10/07/2014
| |
| #
| |
| #-------------------------------------------------------------------------------------------------
| |
| #
| |
| # NOTES:
| |
| #-------------------------------------------------------------------------------------------------
| |
| # Ce n'est qu'une ébauche de script inspiré par ceux qu'a posté fran.b dans le fil de discussion :
| |
| # http://www.debian-fr.org/franciser-l-iso-debian-7-5-live-nonfree-moins-de-2-minutes-t48948.html
| |
| #
| |
| # Ça fonctionne, mais je reviendrai plus tard pour rajouter les contrôles d'erreur, et plus...
| |
| #
| |
| #-------------------------------------------------------------------------------------------------
| |
|
| |
| test "$1" ||
| |
| {
| |
| printf "Donnez un chemin d'image \"ISO Live\" debian en paramètre.\n";
| |
| exit 1;
| |
| }
| |
|
| |
| printf "\nPatientez un peu, je suis en train de franciser \"$1\"...\n\n";
| |
| fichImgEng=$1
| |
| fichImgFR=${fichImgEng%.*}-FR.${fichImgEng##*.}
| |
|
| |
| fichRech="live.cfg"
| |
| chOrigin="quiet splash"
| |
| chAjout="lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-model=pc105 timezone=Europe\/Paris utc=yes"
| |
| chRempl="$chOrigin $chAjout"
| |
| blkSize=` isoinfo -d -i $fichImgEng | grep "block size" | awk '{print $5}'`
| |
| valOffset=`isoinfo -l -R -i $fichImgEng | grep $fichRech | awk '{print $10}'`
| |
|
| |
| cp $fichImgEng $fichImgFR && \
| |
| dd bs=$blkSize count=1 skip=$valOffset if=$fichImgEng 2>/dev/null | \
| |
| sed "s/$chOrigin/$chRempl/" | \
| |
| dd bs=$blkSize count=1 seek=$valOffset of=$fichImgFR conv=notrunc,sync
| |
|
| |
| printf "\n\nVoilà voilà! \"$fichImgFR\" est la version francisée.\n\n"</code>
| |