Modification d iso

De Le Wiki du Forum-Debian.fr
Révision datée du 10 juin 2011 à 16:20 par Thuban (discussion | contributions) (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 "... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

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. Ensuite, on passe ce dossier 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
# +------------------------------------------------------------+
# | iso-extract image.iso
# +------------------------------------------------------------+
# | a executer dans le dossier ou 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 dossier_in.extract image_out.iso
# +------------------------------------------------------------+
# | a executer dans le dossier ou se trouve dossier_in.extract
# | et le fichier preseed.cfg
# +------------------------------------------------------------+

# +------------------------------------------------------------+
# | 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