Modification d iso
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