Cómo crear una imagen ISO personalizada en CentOS

20

Estoy tratando de crear una imagen ISO personalizada que instale el RPMS mínimo requerido junto con algunos RPM escritos personalizados de mi aplicación. y también desea realizar algunos pasos posteriores a la instalación, como configurar mi aplicación y la configuración de VPN, etc.

Vi algunos de los enlaces en google, pero apuntan a crear repositorios e ISO desde el disco montado o la imagen ISO.

Gracias ramesh

Ramesh Kumar
fuente
también puede usar redhat kickstart para este trabajo, es una opción más fácil y flexible. Más información aquí access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
fyarci

Respuestas:

46
  1. Crea un directorio para montar tu fuente.

    mkdir /tmp/bootiso
    
  2. Montar en bucle la fuente ISO que está modificando. (Descargar desde Red Hat / CentOS.)

    mount -o loop /path/to/some.iso /tmp/bootiso
    
  3. Cree un directorio de trabajo para sus medios personalizados.

    mkdir /tmp/bootisoks
    
  4. Copie los medios de origen en el directorio de trabajo.

    cp -r /tmp/bootiso/* /tmp/bootisoks/
    
  5. Desmonte el ISO de origen y elimine el directorio.

    umount /tmp/bootiso && rmdir /tmp/bootiso
    
  6. Cambiar permisos en el directorio de trabajo.

    chmod -R u+w /tmp/bootisoks
    
  7. Copie su secuencia de comandos Kickstart que se ha modificado para los paquetes y %posten el directorio de trabajo.

    cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
    
  8. Copie cualquier RPM adicional a la estructura del directorio y actualice los metadatos.

    cp /path/to/*.rpm /tmp/bootisoks/Packages/.
    cd /tmp/bootisoks/Packages && createrepo -dpo .. .
    
  9. Agregue kickstart a las opciones de arranque.

    sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
    
  10. Crea el nuevo archivo 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. (Opcional) Úselo isohybridsi desea que ddel archivo ISO sea una llave USB de arranque.

    isohybrid /tmp/boot.iso
    
  12. Agregue una suma de verificación MD5 (para permitir la prueba de medios).

    implantisomd5 /tmp/boot.iso
    

Si necesita más ayuda para crear el script Kickstart , sugiero comenzar con la documentación oficial de Red Hat.

Aaron Copley
fuente
1
¿Es posible que haya omitido o haya fallado el paso 4?
Aaron Copley
3
@AaronCopley sí, probablemente tengas razón. También encontré esto: github.com/joyent/mi-centos-7 que me ayudó.
sivann
1
En el paso 9, creo que debe dar el último parámetro. (punto) para indicar el directorio actual. Comportamiento predeterminado extraño pero sin eso, mkisofs crea un archivo iso que contiene solo los archivos del directorio superior y no subdirectorios y más allá.
hshib 01 de
2
También tuve problemas con el paso 4. Con el uso del comando "cp" no copia los archivos ocultos .discinfo y .treeinfo. Sin ellos, la iso creada falla durante la instalación quejándose de que "CD / ROM no encontrado".
hshib
1
Puedes copiar todo con un solo comando con - "cp -r / tmp / bootiso /. / Tmp / bootisoks /" (esto es un poco complicado - nota single. After / tmp / bootiso /)
hshib