Come creare un'immagine ISO personalizzata in CentOS


20

Sto cercando di creare un'immagine ISO personalizzata che installi il minimo RPMS richiesto insieme ad alcuni RPM scritti personalizzati della mia app. e vuole anche eseguire alcuni passaggi successivi all'installazione come la configurazione della mia app e la configurazione della VPN ecc.

Ho visto alcuni dei link su google ma puntano a creare repository e ISO dal disco montato o dall'immagine ISO.

Grazie Ramesh


puoi anche usare redhat kickstart per questo lavoro più facile e scelta più flessibile Maggiori informazioni qui access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
fyarci il

Risposte:


46
  1. Crea una directory per montare la tua fonte.

    mkdir /tmp/bootiso
    
  2. Montare in loop l'ISO di origine che si sta modificando. (Scarica da Red Hat / CentOS.)

    mount -o loop /path/to/some.iso /tmp/bootiso
    
  3. Crea una directory di lavoro per i tuoi media personalizzati.

    mkdir /tmp/bootisoks
    
  4. Copia il supporto di origine nella directory di lavoro.

    cp -r /tmp/bootiso/* /tmp/bootisoks/
    
  5. Smonta l'ISO di origine e rimuovi la directory.

    umount /tmp/bootiso && rmdir /tmp/bootiso
    
  6. Modifica le autorizzazioni sulla directory di lavoro.

    chmod -R u+w /tmp/bootisoks
    
  7. Copia lo script di Kickstart che è stato modificato per i pacchetti e %postnella directory di lavoro.

    cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
    
  8. Copia eventuali RPM aggiuntivi nella struttura della directory e aggiorna i metadati.

    cp /path/to/*.rpm /tmp/bootisoks/Packages/.
    cd /tmp/bootisoks/Packages && createrepo -dpo .. .
    
  9. Aggiungi kickstart alle opzioni di avvio.

    sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
    
  10. Crea il nuovo file 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. (Facoltativo) Utilizzare isohybridse si desidera ddil file ISO su una chiave USB avviabile.

    isohybrid /tmp/boot.iso
    
  12. Aggiungi un checksum MD5 (per consentire il test dei media).

    implantisomd5 /tmp/boot.iso
    

Se hai bisogno di ulteriore aiuto per creare lo script di Kickstart , ti suggerisco di iniziare con la documentazione ufficiale di Red Hat.


1
È possibile che tu abbia perso o fallito il passaggio 4, quindi?
Aaron Copley il

3
@AaronCopley sì, probabilmente hai ragione. Ho anche trovato questo: github.com/joyent/mi-centos-7 che mi ha aiutato.
sivann,

1
Al passaggio 9, credo che tu debba dare l'ultimo parametro. (punto) per indicare la directory corrente. Strano comportamento predefinito ma senza quello, mkisofs crea un file iso che contiene solo i file dalla directory superiore e nessuna sottodirectory e oltre.
hshib,

2
Ho anche avuto problemi con il passaggio 4. Con quell'uso del comando "cp" non copia i file nascosti .discinfo e .treeinfo. Senza quelli, gli iso creati falliscono durante l'installazione lamentandosi che "CD / ROM non trovato".
hshib,

1
Puoi copiare tutto con un singolo comando con - "cp -r / tmp / bootiso /. / Tmp / bootisoks /" (questo è un po 'complicato - nota il singolo. Dopo / tmp / bootiso /)
hshib
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.