J’ai modifié un fichier image ISO debian live
de façon à ne plus avoir besoin de spécifier manuellement ces options
en entrant la suite de lignes de commandes suivantes :
imgFile="/home/michel/Téléchargements/ISOsInstall/debian-live-10.7.0-amd64-xfce.iso"
file2chg="menu.cfg"
myMotif="locales=fr_FR.UTF-8 quiet"
myReplace="locales=fr_FR.UTF-8 keyboard-model=pc105 keyboard-layouts=fr keyboard-variant=oss timezone=Europe/Paris utc=yes quiet"
numTbl=( $(isoinfo -l -R -i "$imgFile" | awk '/ '$file2chg' /{print $5, ($10*2048)}') ) # couple (taille départ)
tmpFile=$(mktemp) # crée un fichier temporaire
dd bs=1 skip=${numTbl[1]} count=${numTbl[0]} if="$imgFile" | sed "s#$myMotif#$myReplace#" > $tmpFile # flux modifié et redirigé vers le fichier temporaire
dd bs=1 seek=${numTbl[1]} if=$tmpFile of="$imgFile" conv=notrunc # Recopie le fichier temporaire dans l'image ISO
rm $tmpFile # supprime le fichier temporaire
J’avais installé le paquetage genisoimage
dans lequel se trouve le programme isoinfo
J’ai utilisé le fichier image ISO debian-live-10.7.0-amd64-xfce.iso dans cet exemple,
mais j’ai testé aussi avec succès ces lignes de comnandes en utilisant toutes les images ISO debian live 64 bits.
Je n’ai pas eu le temps de tester les live i386 et autres, mais ça devrait fonctionner aussi bien.
Ça fonctionnera aussi pour une clef USB sur laquelle aurait été copié (par dd) le même fichier image ISO, Il faut alors donner, à la place d’un chemin+nom de fichier image ISO,
le nom d’un fichier de périphérique auquel la clef a été associée :
imgFile="/dev/sdx"
Mais il faudra le faire avec les privilèges du compte root
puisqu’il est le propriétaire du fichier de périphérique.