« Modification d iso » : différence entre les versions

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
(Page créée avec « Voici deux scripts permettant de modifier une image iso. Cela se passe en deux temps. La première consiste à extraire votre iso dans un dossier du même nom, avec en plus "... »)
 
m (utilisation de <syntaxhighlight lang="bash">)
 
(7 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Voici deux scripts permettant de modifier une image iso. Cela se passe en deux temps. La première consiste à extraire votre iso dans un dossier du même nom, avec en plus ".extract". Vous pouvez modifier ce dossier à votre guise.
Voici deux scripts permettant de modifier une image iso. Cela se passe en deux temps. La première consiste à extraire votre iso dans un répertoire du même nom, avec en plus ".extract". Vous pouvez modifier ce répertoire à votre guise.
Ensuite, on passe ce dossier dans la moulinette du second script, qui va reconstruire votre iso.
Ensuite, on passe ce répertoire dans la moulinette du second script, qui va reconstruire votre iso.


'''Attention : Ces scripts doivent avoir les droits superutilisateurs'''
'''Attention : Ces scripts doivent avoir les droits superutilisateurs'''
Ligne 6 : Ligne 6 :


== Premier script : iso-extract.sh ==
== Premier script : iso-extract.sh ==
#!/bin/bash
<syntaxhighlight lang="bash">
# +------------------------------------------------------------+
#!/bin/bash
# | Man
# +------------------------------------------------------------+
# +------------------------------------------------------------+
# | Man
# | iso-extract image.iso
# +------------------------------------------------------------+
# +------------------------------------------------------------+
# | Synopsis : iso-extract image.iso
# | a executer dans le dossier ou on veut extraire l'image
# +------------------------------------------------------------+
# +------------------------------------------------------------+
# | à exécuter dans le répertoire ou l'on veut extraire l'image
# +------------------------------------------------------------+
mkdir -p loopdir
mount -o loop $1 loopdir
cp -r loopdir/ ./$1.extract
chown -R 1000:1000 $1.extract/
chmod -R +w $1.extract/
umount loopdir
rm -r loopdir/


mkdir -p loopdir
mount -o loop $1 loopdir
cp -r loopdir/ ./$1.extract
chown -R 1000:1000 $1.extract/
chmod -R +w $1.extract/
umount loopdir
rm -r loopdir/
</syntaxhighlight>


== Second script : iso-rebuild.sh ==
== Second script : iso-rebuild.sh ==
#!/bin/bash
<syntaxhighlight lang="bash">
# +------------------------------------------------------------+
#!/bin/bash
# | Man
# +------------------------------------------------------------+
# +------------------------------------------------------------+
# | Man
# | iso-rebuild dossier_in.extract image_out.iso
# +------------------------------------------------------------+
# +------------------------------------------------------------+
# | iso-rebuild répertoire_in.extract image_out.iso
# | a executer dans le dossier ou se trouve dossier_in.extract
# +------------------------------------------------------------+
# | et le fichier preseed.cfg
# | à exécuter dans le répertoire ou se trouve répertoire_in.extract
# +------------------------------------------------------------+
# |  
# +------------------------------------------------------------+
# +------------------------------------------------------------+
# | Var
# +------------------------------------------------------------+
PRESEED='preseed.cfg'
# +------------------------------------------------------------+
# | Verification de la presence du fichier preseed.cfg
# +------------------------------------------------------------+
if [ ! -f $PRESEED ];then
  echo "$PRESEED not found !"
  exit
fi
# +------------------------------------------------------------+
# | Extraction initrd.gz puis suppression
# +------------------------------------------------------------+
mkdir initrd_dir
cd initrd_dir/
gzip -cd ../$1/install.386/initrd.gz | cpio -id
cd ..
rm $1/install.386/initrd.gz
# +------------------------------------------------------------+
# | Modification et/ou ajout dans le nouveau initrd
# +------------------------------------------------------------+
cp $PRESEED initrd_dir/
# +------------------------------------------------------------+
# | Supression fichiers inutiles
# +------------------------------------------------------------+
#rm -rf ./cd/autorun.*
#rm -rf ./cd/doc
#rm -rf ./cd/pics
#rm -rf ./cd/README.*
#rm -rf ./cd/install.386/gtk
# +------------------------------------------------------------+
# | Re-compression initrd
# +------------------------------------------------------------+
cd initrd_dir/
find ./ | cpio -H newc -o > ../initrd
cd ..
gzip initrd
mv initrd.gz $1/install.386/
rm -r initrd_dir/
# +------------------------------------------------------------+
# | Re-calculation de la somme md5
# +------------------------------------------------------------+
cd $1
md5sum `find ! -name "md5sum.txt" ! -path "./isolinux/*" -follow -type f` > md5sum.txt
cd ..
# +------------------------------------------------------------+
# | Creation image ISO bootable
# +------------------------------------------------------------+
genisoimage -o $2 -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat $1
chmod 777 $2


# +------------------------------------------------------------+
# | Calcul de la nouvelle somme md5
# +------------------------------------------------------------+
cd $1
md5sum `find ! -name "md5sum.txt" ! -path "./isolinux/*" -follow -type f` > md5sum.txt
cd ..
# +------------------------------------------------------------+
# | Creation image ISO bootable
# +------------------------------------------------------------+
#commande pour une iso quelconque
#genisoimage -J -r -v -o $2 -V mon_iso_bidouillee $1/loopdir
#commande pour un cd linux
genisoimage -J -r -v -o $2 -V mon_iso_bidouillee -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table $1/loopdir
</syntaxhighlight>


[[Catégorie:Scripts]]
[[Catégorie:Scripts]]

Dernière version du 15 février 2017 à 09:00

Voici deux scripts permettant de modifier une image iso. Cela se passe en deux temps. La première consiste à extraire votre iso dans un répertoire du même nom, avec en plus ".extract". Vous pouvez modifier ce répertoire à votre guise. Ensuite, on passe ce répertoire dans la moulinette du second script, qui va reconstruire votre iso.

Attention : Ces scripts doivent avoir les droits superutilisateurs Attention : Le script iso-extract doit être revérifié et étudié avant utilisation

Premier script : iso-extract.sh

#!/bin/bash
# +------------------------------------------------------------+
# | Man
# +------------------------------------------------------------+
# | Synopsis : iso-extract image.iso
# +------------------------------------------------------------+
# | à exécuter dans le répertoire ou l'on veut extraire l'image
# +------------------------------------------------------------+

mkdir -p loopdir
mount -o loop $1 loopdir
cp -r loopdir/ ./$1.extract
chown -R 1000:1000 $1.extract/
chmod -R +w $1.extract/
umount loopdir
rm -r loopdir/

Second script : iso-rebuild.sh

#!/bin/bash
# +------------------------------------------------------------+
# | Man
# +------------------------------------------------------------+
# | iso-rebuild répertoire_in.extract image_out.iso
# +------------------------------------------------------------+
# | à exécuter dans le répertoire ou se trouve répertoire_in.extract
# | 
# +------------------------------------------------------------+


# +------------------------------------------------------------+
# | Calcul de la nouvelle somme md5
# +------------------------------------------------------------+
cd $1
md5sum `find ! -name "md5sum.txt" ! -path "./isolinux/*" -follow -type f` > md5sum.txt
cd ..

# +------------------------------------------------------------+
# | Creation image ISO bootable
# +------------------------------------------------------------+

#commande pour une iso quelconque
#genisoimage -J -r -v -o $2 -V mon_iso_bidouillee $1/loopdir

#commande pour un cd linux
genisoimage -J -r -v -o $2 -V mon_iso_bidouillee -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table $1/loopdir