Franciser une image ISO live

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

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. lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-model=pc105 keyboard-layouts=fr keyboard-variant=latin9 timezone=Europe/Paris utc=yes 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.

NOTE: Bien sûr cette maipulation comme le script fonctionne avec tous les fichiers image ISO de type debian live

Description

J'ai décidé d'ajouter ces options de boot directement dans l'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
dont voici un extrait du contenu (les deux premiers "label"s):

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

Il me faudra donc modifier la ligne :

	append boot=live config quiet splash

de façon à ce qu'elle devienne :

	append boot=live config quiet splash lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-model=pc105 keyboard-layouts=fr keyboard-variant=latin9 timezone=Europe/Paris utc=yes

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,
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…,
ç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,
alors, j'entre la commande suivante : michel@debG53SW:~$ hexcurse ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop.iso L'écran affiché présente alors le contenu du fichier image ISO en Hexa (à gauche) et ASCII (à droite). ┌00000000─────────────────────────────────────────────────┐^┌────────────────┐ │00000000 33 ED 90 90 90 90 90 90 90 90 90 90 90 90 90 90 │◆│3...............│ │00000010 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 │▒│................│ │00000020 33 ED FA 8E D5 BC 00 7C FB FC 66 31 DB 66 31 C9 │▒│3......|..f1.f1.│ │00000030 66 53 66 51 06 57 8E DD 8E C5 52 BE 00 7C BF 00 │▒│fSfQ.W....R..|..│ │00000040 06 B9 00 01 F3 A5 EA 4B 06 00 00 52 B4 41 BB AA │▒│.......K...R.A..│ │00000050 55 31 C9 30 F6 F9 CD 13 72 16 81 FB 55 AA 75 10 │▒│U1.0....r...U.u.│ │00000060 83 E1 01 74 0B 66 C7 06 F1 06 B4 42 EB 15 EB 00 │▒│...t.f.....B....│ │00000070 5A 51 B4 08 CD 13 83 E1 3F 5B 51 0F B6 C6 40 50 │▒│ZQ......?[Q...@P│ │00000080 F7 E1 53 52 50 BB 00 7C B9 04 00 66 A1 B0 07 E8 │▒│..SRP..|...f....│ │00000090 44 00 0F 82 80 00 66 40 80 C7 02 E2 F2 66 81 3E │▒│D.....f@.....f.>│ │000000A0 40 7C FB C0 78 70 75 09 FA BC EC 7B EA 44 7C 00 │▒│@|..xpu....{.D|.│ │000000B0 00 E8 83 00 69 73 6F 6C 69 6E 75 78 2E 62 69 6E │▒│....isolinux.bin│ │000000C0 20 6D 69 73 73 69 6E 67 20 6F 72 20 63 6F 72 72 │▒│ missing or corr│ │000000D0 75 70 74 2E 0D 0A 66 60 66 31 D2 66 03 06 F8 7B │▒│upt...f`f1.f...{│ │000000E0 66 13 16 FC 7B 66 52 66 50 06 53 6A 01 6A 10 89 │▒│f...{fRfP.Sj.j..│ │000000F0 E6 66 F7 36 E8 7B C0 E4 06 88 E1 88 C5 92 F6 36 │▒│.f.6.{.........6│ │00000100 EE 7B 88 C6 08 E1 41 B8 01 02 8A 16 F2 7B CD 13 │▒│.{....A......{..│ │00000110 8D 64 10 66 61 C3 E8 1E 00 4F 70 65 72 61 74 69 │▒│.d.fa....Operati│ │00000120 6E 67 20 73 79 73 74 65 6D 20 6C 6F 61 64 20 65 │▒│ng system load e│ │00000130 72 72 6F 72 2E 0D 0A 5E AC B4 0E 8A 3E 62 04 B3 │▒│rror...^....>b..│ │00000140 07 CD 10 3C 0A 75 F1 CD 18 F4 EB FD 00 00 00 00 │▒│...<.u..........│ │00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │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 C4 BE 19 00 00 00 00 00 A4 0D CF 4A 00 00 80 02 │▒│...........J....│ │000001C0 01 00 17 3F E0 B4 40 00 00 00 C0 A7 1D 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 55 AA │▒│..............U.│ └─────────────────────────────────────────────────────────┘v└────────────────┘

 Help     Save     Open        Goto     Find      Hex Addr Hex Edit   Quit  

La touche "F1" permet d'obtenir une fenêtre d'aide. ┌00000000─────────────────────────────────────────────────┐^┌────────────────┐ │ Ctrl Key HexCurse Keyboard Commands │◆│ Function Keys │ │ │▒│ │ │ CTRL+? Help - you are reading it now │▒│ Help = F1 │ │ CTRL+S Save - saves the current file open │▒│ Save = F2 │ │ CTRL+O Open - opens a new file │▒│ Open = F3 │ │ CTRL+G Goto - goto a specified address │▒│ Goto = F4 │ │ CTRL+F Find - search for a hex/ascii value │▒│ Find = F5 │ │ CTRL+A HexAdres - toggle between hex/decimal address │▒│ HexAdres = F6 │ │ TAB Hex Edit - toggle between hex/ASCII windows │▒│ Hex Edit = F7 │ │ CTRL+Q Quit - exit out of the program │▒│ Quit = F8 │ │ │▒│ │ │ CTRL+U Page up - scrolls one screen up │▒│ Page up = PGUP│ │ CTRL+D Page down- scrolls one screen down │▒│ Page down= PGDN│ │ CTRL+Z Undo - reverts last modification │▒│ │ │ CTRL+T Home - returns to the top of the file │▒│ │ │ CTRL+B End - jumps to the bottom of the file │▒│ │ │ │▒│ │ │ Press enter to continue │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ │ │▒│ │ └─────────────────────────────────────────────────────────┘v└────────────────┘

 Help     Save     Open        Goto     Find      Hex Addr Hex Edit   Quit  

NOTE: Pour utiliser les touches de raccourcis de hexcurse,
vous devrez peut-être désactiver les touches de raccourcis de la fenêtre de terminal virtuel (voir ce post).

Touche Description
"F5" Permet de faire une recherche.
"F8" Quitte "hexcurse".
"TAB" Est une touche bascule qui permet de positionner le curseur dans chaque partie de l'écran affiché (Hexa ou Ascii).
"CTRL-z" Anulle les modifications effectuées.
"Esc" Anulle la demande de "sauvegarde", "ouverture", "aller à" , ou "recherche" en cours.


Maintenant que je sais comment faire, je ferme la fenêtre d'aide en utilisant la touche "Esc",
et je positionne le curseur dans la fenêtre Ascii avec la touche "Tab" afin de faire la recherche sur les caractères Ascii. ┌00000000─────────────────────────────────────────────────┐^┌────────────────┐ │00000000 33 ED 90 90 90 90 90 90 90 90 90 90 90 90 90 90 │◆│3...............│ │00000010 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 │▒│................│ │00000020 33 ED FA 8E D5 BC 00 7C FB FC 66 31 DB 66 31 C9 │▒│3......|..f1.f1.│ │00000030 66 53 66 51 06 57 8E DD 8E C5 52 BE 00 7C BF 00 │▒│fSfQ.W....R..|..│ │00000040 06 B9 00 01 F3 A5 EA 4B 06 00 00 52 B4 41 BB AA │▒│.......K...R.A..│ │00000050 55 31 C9 30 F6 F9 CD 13 72 16 81 FB 55 AA 75 10 │▒│U1.0....r...U.u.│ │00000060 83 E1 01 74 0B 66 C7 06 F1 06 B4 42 EB 15 EB 00 │▒│...t.f.....B....│ │00000070 5A 51 B4 08 CD 13 83 E1 3F 5B 51 0F B6 C6 40 50 │▒│ZQ......?[Q...@P│ │00000080 F7 E1 53 52 50 BB 00 7C B9 04 00 66 A1 B0 07 E8 │▒│..SRP..|...f....│ │00000090 44 00 0F 82 80 00 66 40 80 C7 02 E2 F2 66 81 3E │▒│D.....f@.....f.>│ │000000A0 40 7C FB C0 78 70 75 09 FA BC EC 7B EA 44 7C 00 │▒│@|..xpu....{.D|.│ │000000B0 00 E8 83 00 69 73 6F 6C 69 6E 75 78 2E 62 69 6E │▒│....isolinux.bin│ │000000C0 20 6D 69 73 73 69 6E 67 20 6F 72 20 63 6F 72 72 │▒│ missing or corr│ │000000D0 75 70 74 2E 0D 0A 66 60 66 31 D2 66 03 06 F8 7B │▒│upt...f`f1.f...{│ │000000E0 66 13 16 FC 7B 66 52 66 50 06 53 6A 01 6A 10 89 │▒│f...{fRfP.Sj.j..│ │000000F0 E6 66 F7 36 E8 7B C0 E4 06 88 E1 88 C5 92 F6 36 │▒│.f.6.{.........6│ │00000100 EE 7B 88 C6 08 E1 41 B8 01 02 8A 16 F2 7B CD 13 │▒│.{....A......{..│ │00000110 8D 64 10 66 61 C3 E8 1E 00 4F 70 65 72 61 74 69 │▒│.d.fa....Operati│ │00000120 6E 67 20 73 79 73 74 65 6D 20 6C 6F 61 64 20 65 │▒│ng system load e│ │00000130 72 72 6F 72 2E 0D 0A 5E AC B4 0E 8A 3E 62 04 B3 │▒│rror...^....>b..│ │00000140 07 CD 10 3C 0A 75 F1 CD 18 F4 EB FD 00 00 00 00 │▒│...<.u..........│ │00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │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 C4 BE 19 00 00 00 00 00 A4 0D CF 4A 00 00 80 02 │▒│...........J....│ │000001C0 01 00 17 3F E0 B4 40 00 00 00 C0 A7 1D 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 55 AA │▒│..............U.│ └Enter ascii value (): live-amd64 v└────────────────┘

 Help     Save     Open        Goto     Find      Hex Addr Asc Edit   Quit  

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.
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".


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é.
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 "label". ┌33807006─────────────────────────────────────────────────┐^┌────────────────┐ │33807000 6C 61 62 65 6C 20 6C 69 76 65 2D 61 6D 64 36 34 │▒│label live-amd64│ │33807010 0A 09 6D 65 6E 75 20 6C 61 62 65 6C 20 5E 4C 69 │▒│..menu label ^Li│ │33807020 76 65 20 28 61 6D 64 36 34 29 0A 09 6D 65 6E 75 │▒│ve (amd64)..menu│ │33807030 20 64 65 66 61 75 6C 74 0A 09 6C 69 6E 75 78 20 │▒│ default..linux │ │33807040 2F 6C 69 76 65 2F 76 6D 6C 69 6E 75 7A 0A 09 69 │▒│/live/vmlinuz..i│ │33807050 6E 69 74 72 64 20 2F 6C 69 76 65 2F 69 6E 69 74 │▒│nitrd /live/init│ │33807060 72 64 2E 69 6D 67 0A 09 61 70 70 65 6E 64 20 62 │▒│rd.img..append b│ │33807070 6F 6F 74 3D 6C 69 76 65 20 63 6F 6E 66 69 67 20 │▒│oot=live config │ │33807080 71 75 69 65 74 20 73 70 6C 61 73 68 0A 0A 6C 61 │▒│quiet splash..la│ │33807090 62 65 6C 20 6C 69 76 65 2D 61 6D 64 36 34 2D 66 │▒│bel live-amd64-f│ │338070A0 61 69 6C 73 61 66 65 0A 09 6D 65 6E 75 20 6C 61 │▒│ailsafe..menu la│ │338070B0 62 65 6C 20 5E 4C 69 76 65 20 28 61 6D 64 36 34 │▒│bel ^Live (amd64│ │338070C0 20 66 61 69 6C 73 61 66 65 29 0A 09 6C 69 6E 75 │▒│ failsafe)..linu│ │338070D0 78 20 2F 6C 69 76 65 2F 76 6D 6C 69 6E 75 7A 0A │▒│x /live/vmlinuz.│ │338070E0 09 69 6E 69 74 72 64 20 2F 6C 69 76 65 2F 69 6E │▒│.initrd /live/in│ │338070F0 69 74 72 64 2E 69 6D 67 0A 09 61 70 70 65 6E 64 │▒│itrd.img..append│ │33807100 20 62 6F 6F 74 3D 6C 69 76 65 20 63 6F 6E 66 69 │▒│ boot=live confi│ │33807110 67 20 6D 65 6D 74 65 73 74 20 6E 6F 61 70 69 63 │▒│g memtest noapic│ │33807120 20 6E 6F 61 70 6D 20 6E 6F 64 6D 61 20 6E 6F 6D │▒│ noapm nodma nom│ │33807130 63 65 20 6E 6F 6C 61 70 69 63 20 6E 6F 6D 6F 64 │▒│ce nolapic nomod│ │33807140 65 73 65 74 20 6E 6F 73 6D 70 20 6E 6F 73 70 6C │▒│eset nosmp nospl│ │33807150 61 73 68 20 76 67 61 3D 6E 6F 72 6D 61 6C 0A 00 │▒│ash vga=normal..│ │33807160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │33807170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │33807180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │33807190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │338071A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │338071B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │338071C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │◆│................│ │338071D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │338071E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ │338071F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │▒│................│ └─────────────────────────────────────────────────────────┘v└────────────────┘

 Help     Save     Open        Goto     Find      Hex Addr Asc Edit   Quit  

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 :
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 : michel@debG53SW:~$ printf "%d\n" 0x33807000 864055296

Extraire, avec dd, le texte à modifier

dd permet de lire et écrire de façon "brute", donc dans un fichier de format quelconque,
il conviendra parfaitement pour extraire et replacer une partie du fichier de l'image ISO à modifier. 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:~$ Je visualise avec hexdump les 512 octets récupérés : 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:~$ 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 : 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 Je vérifie que les options ont bien été ajoutées : 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:~$ Bien sûr, la taille du fichier est passée de 512 à 620 octets : michel@debG53SW:~$ ls -l fichTemp.txt -rw-r--r-- 1 michel michel 620 juil. 7 11:50 fichTemp.txt michel@debG53SW:~$ 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 : 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 Maintenant, je replace les 512 premiers octets du fichier fichTemp.txt dans le fichier image ISO avec dd : 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:~$

Tester l'image ISO avec kvm

Je teste le démarrage de l'image ISO avec kvm (ou VirtualBox) : michel@debG53SW:~$ kvm -m 2G -cpu host -boot d -cdrom ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop.iso Un appui sur la touche "Tab" me permet de constater que les options ajoutées sont bien là,
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 : michel@debG53SW:~$ rm fichTemp.txt ~/Téléchargements/debian-live-7.5.0-amd64-xfce-desktop-original.iso

Ou alors, utilisez un script.

  1. !/bin/sh -
  2. =================================================================================================
  3. NOM: isoLive2fr.sh
  4. SYNTAXE: isoLive2fr <fichier image ISO Live>
  5. BUT: Ajouter les paramètres de boot
  6. dans un fichier image ISO Live debian,
  7. de façon à ce qu'elle démarre en Français.
  8. NÉCESSITE: "isoinfo" du paquetage "genisoimage"
  9. "dd" du paquetage "coreutils"
  10. "awk" du paquetage "gawk"
  11. "grep" du paquetage "grep"
  12. "sed" du paquetage "sed"
  13. AUTEUR: MicP (debian-fr)
  14. DATE: 12/07/2014
  15. VERSION: 0.02
  16. -------------------------------------------------------------------------------------------------
  17. NOTES: Ce n'est qu'une ébauche de script inspiré par ceux qui ont été postés par fran.b
  18. dans le fil de discussion suivant :
  19. http://www.debian-fr.org/franciser-l-iso-debian-7-5-live-nonfree-moins-de-2-minutes-t48948.html
  20. Ça fonctionne, mais je reviendrai plus tard pour rajouter les contrôles d'erreur, et plus...
  21. =================================================================================================

test "$fichImgEn" ||

 {
   printf "\nDonnez un chemin d'image \"ISO Live\" debian en paramètre.\n"
   exit 1
 }

isoinfo -d -i "$fichImgEn" | grep "Application id: DEBIAN LIVE" || \

 {
   printf "\n\"${fichImgEn}\" n'est PAS un fichier d'image ISO \"Debian Live\"...\n\n"
   exit 1
 }

frAins="-FR" insApres="live"

fichImgFr="${fichImgEn%$insApres*}${insApres}${frAins}${fichImgEn#*$insApres}"

fichRech="live.cfg" chOrigin="quiet splash" chAjout="lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-model=pc105 keyboard-layouts=fr keyboard-variant=latin9 timezone=Europe\/Paris utc=yes" fichTmp="/tmp/tmpAeffacer`date +%s`.dat" chRempl="$chOrigin $chAjout"

blockSize=`isoinfo -d -i "${fichImgEn}" | grep "block size" | awk '{print $5}'` valOffset=`isoinfo -l -R -i "${fichImgEn}" | grep "${fichRech}" | awk '{print $10}'`

dd bs=$blockSize count=1 skip=$valOffset if="${fichImgEn}" 2>/dev/null | \ sed "s/$chOrigin/$chRempl/" > "${fichTmp}" && \ dd bs=$blockSize count=1 seek=$valOffset if="${fichTmp}" of="${fichImgEn}" conv=notrunc,sync 2>/dev/null && \ mv "${fichImgEn}" "${fichImgFr}" && \ rm "${fichTmp}"

printf "\nVoilà voilà! \"${fichImgFr}\" est la version francisée.\n\n"