Comment créer une image ISO personnalisée dans CentOS

20

J'essaie de créer une image ISO personnalisée qui installerait le RPMS minimal requis avec certains RPM écrits personnalisés de mon application. et souhaite également effectuer certaines étapes de post-installation telles que la configuration de ma configuration d'application et de VPN, etc.

J'ai vu certains des liens sur Google, mais ils pointent vers la création d'un référentiel et d'une image ISO à partir d'un disque monté ou d'une image ISO.

Merci Ramesh

Ramesh Kumar
la source
vous pouvez également utiliser redhat kickstart pour ce travail, c'est un choix plus facile et plus flexible Plus d'informations ici access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
fyarci

Réponses:

46
  1. Créez un répertoire pour monter votre source.

    mkdir /tmp/bootiso
    
  2. Montez en boucle l'ISO source que vous modifiez. (Téléchargez depuis Red Hat / CentOS.)

    mount -o loop /path/to/some.iso /tmp/bootiso
    
  3. Créez un répertoire de travail pour vos supports personnalisés.

    mkdir /tmp/bootisoks
    
  4. Copiez le support source dans le répertoire de travail.

    cp -r /tmp/bootiso/* /tmp/bootisoks/
    
  5. Démontez l'ISO source et supprimez le répertoire.

    umount /tmp/bootiso && rmdir /tmp/bootiso
    
  6. Modifiez les autorisations sur le répertoire de travail.

    chmod -R u+w /tmp/bootisoks
    
  7. Copiez votre script Kickstart qui a été modifié pour les packages et %postdans le répertoire de travail.

    cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
    
  8. Copiez tous les RPM supplémentaires dans la structure de répertoires et mettez à jour les métadonnées.

    cp /path/to/*.rpm /tmp/bootisoks/Packages/.
    cd /tmp/bootisoks/Packages && createrepo -dpo .. .
    
  9. Ajoutez des options de démarrage pour démarrer.

    sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
    
  10. Créez le nouveau fichier ISO.

    cd /tmp/bootisoks && \ 
    mkisofs -o /tmp/boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS 7 x86_64" -R -J -v -T isolinux/. .
    
  11. (Facultatif) À utiliser isohybridsi vous souhaitez ddenregistrer le fichier ISO sur une clé USB amorçable.

    isohybrid /tmp/boot.iso
    
  12. Ajoutez une somme de contrôle MD5 (pour permettre le test des médias).

    implantisomd5 /tmp/boot.iso
    

Si vous avez besoin de plus d'aide pour créer le script Kickstart , je vous suggère de commencer par la documentation officielle de Red Hat.

Aaron Copley
la source
1
Est-il possible que vous ayez raté ou raté l'étape 4, alors?
Aaron Copley
3
@AaronCopley oui, vous avez probablement raison. J'ai également trouvé ceci: github.com/joyent/mi-centos-7 qui m'a aidé.
sivann
1
À l'étape 9, je crois que vous devez donner le dernier paramètre. (point) pour indiquer le répertoire courant. Comportement étrange par défaut mais sans cela, mkisofs crée un fichier iso qui contient uniquement les fichiers du répertoire supérieur et aucun sous-répertoire et au-delà.
hshib
2
J'ai également eu un problème avec l'étape 4. Avec cette utilisation de la commande "cp", il ne copie pas les fichiers cachés .discinfo et .treeinfo. Sans ceux-ci, l'iso créé échoue pendant l'installation en se plaignant que "CD / ROM introuvable".
hshib
1
Vous pouvez tout copier avec une seule commande avec - "cp -r / tmp / bootiso /. / Tmp / bootisoks /" (c'est un peu délicat - notez single. After / tmp / bootiso /)
hshib