Skip navigation.
Home

Modificando una imagen ISO (IPCop Firewall)

He estado usando IPCop Firewall por un tiempo y en mis instalaciones generalmente añado módulos adicionales. El CD oficial de IPCop no trae estos módulos, así que uno necesita descargarlos.

Decidí entonces que quería modificar el CD de IPCop para incluir estos módulos, se podría hacer de dos maneras la simple e inmediata y otra más elaborada.

  • La manera simple es añadir un directorio al CD de IPCop y copiar allí los módulos. Para usarlos se tendría que seguir el procedimiento indicado para cada módulo.
  • La manera más elaborada es modificar la distribución de IPCop, esto es hacer una instalación habitual, incluir y configurar los módulos y a partir de allí crear la distribución y hacer un nuevo CD de IPCop.

Por razones de tiempo, y principalmente porque quiero aprender a modificar una imagen ISO, me fuí por la manera simple e inmediata.

Si uno busca en San Google, información sobre modificar imágenes ISO en GNU/Linux, encontrará varios enlaces que hablan del asunto. En resumen:

Una imagen ISO no se puede modificar, la única manera es volver a crear una nueva imagen ISO a partir de la primera. Lo que se hace es simplemente copiar todos los archivos de la imagen ISO a otro directorio donde se haran los cambios, una vez realizados se crea la nueva imagen ISO con los archivos de este directorio. Para nosotros los GNU/Linuxeros esto es un sistema de archivos ISO, creado con la orden mkisofs.

Este es el procedimiento que realizé.

1. Lo primero fue descargar la imagen ISO de IPCop Firewall desde el sitio oficial. Conseguí el archivo ipcop-1.4.18-install-cd.i386.iso

2. Montar la imagen ISO en un directorio temporal. Como lo hago en un sistema Ubuntu debo usar sudo

$ sudo mount -o loop /extra/descargas/ipcop-1.4.18-install-cd.i386.iso /mnt/

3. Ahora crear un directorio donde realizaré los cambios

$ mkdir ipcop

4. Copiar todo el contenido del directorio /mnt/ (donde está montado el ISO) al directorio temporal. Voy a usar rsync :-)

$ rsync -a -H /mnt/ ipcop/

5. Corregir permisos para permitir los cambios deseados

$ chmod -R u+w ipcop/

6. Hacer todos los cambios bajo el directorio ipcop y una vez terminados generar la nueva imagen ISO.

$ cd ipcop
$ mkisofs -r -c boot/isolinux/boot.catalog -b boot/isolinux/isolinux.bin \
> -no-emul-boot -boot-load-size 4 -boot-info-table -V 'IPCop 1.4.18' \
> -o /extra/descargas/ipcop-1.4.18-install-cd-hardy.i386.iso .

Estas opciones se entienden así:

-r - Poner propiedas y permisos de archivos a valores útiles cuando el CD sea montado por un usuario
-c boot/isolinux/boot.catalog - Catálogo de arranque para ser usada en el CD arrancable "El Torito"
-b boot/isolinux/isolinux.bin - Para crear un CD arrancable "El Torito"
-no-emul-boot - Especifica que la imagen de arranque anterior no es una emulación
-boot-load-size 4 - Número de sectores para cargar durante el arranque
-boot-info-table - Modifica la imagen de arranque (indicada con -b) para incluir información sobre la estructura del CD
-V 'IPCop 1.4.18' - Etiqueta del CD
-o /extra/descargas/ipcop-1.4.18-install-cd-hardy.i386.iso - Archivo ISO que será creado

Listo eso ha creado la nueva imagen ISO con los cambios. Ahora sólo queda probarla, una manera muy, muy rápida es usar Qemu para ver si el CD arranca.

Para esta prueba necesitamos tener Qemu previamente instalado y hacemos:

$ qemu -boot d -cdrom /extra/descargas/ipcop-1.4.18-install-cd-hardy.i386.iso

Si todo arranca bien el último paso es quemar la imagen ISO a un CD. En Linux

cdrecord dev=/dev/hdd -eject driveropts=burnfree -v -data /extra/descargas/ipcop-1.4.18-install-cd-hardy.i386.iso