F.4 Modificación de los archivos de recursos de ZENworks Imaging

Es posible que de vez en cuando quiera modificar una distribución de generación de imágenes añadiendo sus propios archivos. Puede tratarse de programas adicionales, guiones, archivos de datos o controladores de Linux actualizados.

Puede usar los siguientes métodos para actualizar los archivos de recursos de generación de imágenes:

F.4.1 Adición de archivos a un CD de arranque de generación de imágenes

Si tiene archivos que añadir a un CD de arranque de generación de imágenes con el fin de que estén disponibles para usarlos cuando realice el proceso real de generación de imágenes (por ejemplo, los guiones, pero no los módulos de controladores), puede copiar los archivos en el directorio /addfiles del CD de generación de imágenes. Se trata de una forma fácil de insertar guiones u otros archivos en la distribución sin modificar los sistemas de archivos initrd ni root. Sin embargo, estos archivos no estarán disponibles durante las fases de arranque ni de carga de módulos.

El CD de arranque de generación de imágenes tiene un directorio llamado /addfiles donde se pueden añadir archivos. Hay que colocarlos en este directorio en los nombres de directorio pertinentes. Durante el proceso de generación de imágenes, estarán disponibles en esta estructura de directorio.

Ejemplo de cómo se pueden añadir los archivos:

  1. Si desea ejecutar su propio guión en lugar del proceso de generación de imágenes normal, cree un archivo de guión llamado miguión.s y colóquelo en el CD de arranque. Por ejemplo, /addfiles/bin/miguión.s.

    IMPORTANTE:el archivo de guión debe tener los terminadores de línea LF adecuados que requiere Linux, no los caracteres de final de línea LF y CR de DOS. En otras palabras, no puede usar Notepad.exe para crear el guión; debe emplear un editor de texto compatible con Linux, como TextPad.

  2. Para incluir la siguiente línea en el archivo settings.txt, escriba:

    export IMGCMD="/bin/myscript.s"
    

    Cuando se genera la imagen, se ejecuta /bin/myscript.s en lugar del comando normal img -auto.

F.4.2 Adición de archivos a los sistemas de archivos Initrd o root

Éste es el método preferido para actualizar los archivos de recursos de generación de imágenes y se debe ejecutar en un entorno Linux.

Antes de ejecutar el procedimiento que se indica a continuación, asegúrese de que ha creado copias de seguridad de todos los archivos que desee modificar, en especial del archivo /srv/tftp/boot/initrd. Si desea cambiar los archivos de un CD de generación de imágenes, necesita un editor ISO o algún otro proceso para extraer y sustituir el archivo en el archivo de imagen bootcd.iso.

IMPORTANTE:cuando actualice o añada archivos y controladores de Linux en los sistemas de archivos initrd o root, es necesario que anote los cambios que efectúe. Cuando reciba archivos de recursos actualizados de Novell, estos recursos no incluirán cambios personalizados que usted haya efectuado. Si la versión del kernel ha cambiado con los archivos de recursos nuevos de Novell, los controladores añadidos previamente deberán actualizarse, bien obteniendo una versión nueva del fabricante o volviendo a compilar el controlador usando el origen adecuado de la versión del kernel de Linux.

Para añadir archivos al sistema de archivos root, puede usar también el método del archivo driverupdate que se describe en la Sección F.4.3, Uso del método del archivo Driverupdate.

Modificación de initrd

Para modificar el sistema de archivos initrd:

  1. Usando un dispositivo Linux, cree un directorio de trabajo y acceda a él.

  2. Para copiar initrd desde el servidor PXE o el CD de arranque en el nuevo directorio de trabajo:

    • En el caso de PXE, copie /tftp/boot/initrd en el directorio de trabajo de la estación de trabajo de Linux.

    • En el caso del CD, extraiga initrd del directorio /boot/i386/loader del CD de arranque y, a continuación, copie el archivo initrd extraído en el directorio de trabajo de la estación de trabajo de Linux.

  3. Para cambiar el nombre de initrd a initrd.gz, escriba:

    mv initrd initrd.gz
    
  4. Para descomprimir el archivo initrd.gz, escriba:

    gunzip initrd.gz
    
  5. Para crear otro directorio de trabajo para usarlo como punto de montaje en los pasos siguientes, escriba:

    mkdir work
    
    cd work
    
  6. Para extraer el archivo initrd en el directorio /work, escriba:

    cpio -idmuv ../initrd >/dev/null 2>&1
    
  7. Para copiar los archivos o el controlador actualizado en el sistema de archivos extraído initrd, escriba:

    cp /your_path/module.ko work/lib/modules/2.6.5-override-default/initrd
    

    donde su_vía es la vía al archivo módulo.ko y módulo es el nombre del módulo.

    Los otros archivos que se deban incluir en el sistema de archivos initrd deben copiarse en el directorio correspondiente.

  8. Para volver a empaquetar el sistema de archivos initrd, escriba:

    cd work
    
    find . | cpio -quiet -o -H newc > ../initrd
    
    cd ..
    
  9. Para comprimir el nuevo archivo initrd, escriba:

    gzip -v9c initrd > initrd.gz
    
  10. Para cambiar el nombre de initrd.gz a initrd, escriba:

    mv initrd.gz initrd
    
  11. Para deshacer la copia de los archivos:

    • En el caso de PXE, copie el archivo actualizado initrd en el directorio /tftp/boot del servidor PXE.

    • En el caso del CD, copie el archivo actualizado initrd en el directorio /boot/i386/loader del CD de arranque.

Modificación de root

Para modificar el sistema de archivos root:

  1. Usando un dispositivo Linux, cree un directorio de trabajo y acceda a él.

  2. Para copiar initrd desde el servidor PXE o el CD de arranque en el nuevo directorio de trabajo:

    • En el caso de PXE, copie /tftp/boot/initrd en el directorio de trabajo de la estación de trabajo de Linux.

    • En el caso del CD, extraiga root del directorio /boot/i386/ del CD de arranque y, a continuación, copie el archivo root extraído en el directorio de trabajo de la estación de trabajo de Linux.

  3. Para cambiar el nombre de root a root.gz, escriba:

    mv root root.gz
    
  4. Para descomprimir el archivo root.gz, escriba:

    gunzip root.gz
    
  5. Para crear otro directorio de trabajo para usarlo como punto de montaje en los pasos siguientes, escriba:

    mkdir work
    
  6. Para montar el sistema de archivos initrd en el directorio /trabajo, escriba:

    mount -o loop root work
    
  7. Para copiar los archivos o el controlador actualizado en el sistema de archivos root montado, escriba:

    cp /your_path/module.ko work/lib/modules/2.6.5-override-default/initrd
    

    donde su_vía es la vía al archivo módulo.ko y módulo es el nombre del módulo.

    Los otros archivos que se deban incluir en el sistema de archivos initrd deben copiarse en el directorio correspondiente.

  8. Para desmontar el sistema de archivos root, escriba:

    umount work
    
  9. Para comprimir el nuevo archivo rrot, escriba:

    gzip -v9c root > root.gz
    
  10. Para cambiar el nombre de root.gz a root, escriba:

    mv root.gz root
    
  11. Para deshacer la copia de los archivos:

    • En el caso de PXE, copie el archivo root actualizado en el directorio /tftp/boot del servidor PXE.

    • En el caso del CD, copie el archivo root actualizado en el directorio /boot/i386/ del CD de arranque.

F.4.3 Uso del método del archivo Driverupdate

Otra forma de personalizar la distribución de la generación de imágenes de Novell consiste en utilizar el mecanismo de actualización de controladores integrado en todas las distribuciones SUSE. Conlleva la modificación de un archivo llamado driverupdate, que se encuentra en el directorio /srv/tftp/boot del servidor generador de imágenes, o en la raíz (/) de un CD de arranque de generación de imágenes.

Este método es un poco menos radical que modificar los sistemas de archivos initrd o root. Lo único que tiene que hacer es crear un archivo adicional que se incorpora al sistema operativo de generación de imágenes durante el arranque.

Hay tres tipos de operaciones para actualizar el controlador:

  • Instalar los módulos del núcleo o los controladores del hardware

  • Instalar los archivos y ejecutar un guión

  • Simplemente colocar los archivos en el sistema operativo

En esta sección se describe cómo instalar archivos y ejecutar un guión. Para obtener información sobre los otros dos métodos, consulte "Tech Talk #3 - Spittin' Image" (Documento técnico número 3: imágenes perfectas) en la publicación Novell Connection Magazine. En especial, consulte las secciones sobre actualizaciones de controladores de SUSE Linux y la adición de archivos al archivo root de la distribución del artículo.

El ejemplo de esta sección usa el programa “tree” (árbol) que actualmente no está disponible en la distribución de generación de imágenes y que se instala en el momento del arranque.

El mecanismo de actualización del controlador busca el archivo driverupdate, que contiene una estructura de directorio que reproduce la estructura de directorio del sistema operativo después de que el dispositivo se haya arrancado con la distribución de ZENworks. Si está presente, linuxrc lo descarga durante el arranque y lo incorpora al sistema operativo de forma dinámica.

El archivo driverupdate es un archivo de sistema de archivos que puede ser de cualquier tipo de sistema de archivos como, por ejemplo, EXT3 o REISER. Por motivos de simplicidad, usaremos el sistema de archivos CRAMFS en nuestro ejemplo.

Para colocar el programa de árbol en el archivo driverupdate:

  1. Cree un directorio de trabajo en el servidor generador de imágenes como, por ejemplo, /trabajo.

  2. Si utiliza el archivo driverupdate, descargue el archivo driverupdate.tgz en el directorio /work y descomprímalo mediante:

    mkdir work
    cd work
    wget http://www.novell.com/connectionmagazine/2005/11/download/driverupdate.tgz
    tar -xzvf driverupdate.tgz
    

    El archivo driverupdate.tgz contiene la misma estructura de directorio que se creó en el Paso 3.

  3. Si va a crear los directorios manualmente, cree la siguiente estructura en el directorio /work:

    `-- linux
        `-- suse
            |-- i386-sles10
                |-- dud.config
                |-- inst-sys
                    `-- lib
                    `-- bin
                |-- adddir.s
    

    El contenido del archivo dud.config debe incluir líneas similares a las que figuran más abajo. Debe conservar las palabras claves suministrando sus propios datos. Sin embargo, puede usar los valores de la siguiente lista:

    UpdateName:     ZENworks 10 Patch 1
    UpdateID:       a37f92556e4dd99e
    UpdatePriority: 100
    

    El archivo adddir.s debe ser un guión ejecutable que contenga las siguientes líneas:

    echo "Processing: adddir.s" > /dev/tty3 2>&1
    # driver update: add files to inst-sys
    for i in /update/[0-9]*/inst-sys ; do
         [ -d "$i" ] && adddir "$i" /
    done
    
    # driver update: run update.pre scripts
    for i in /update/[0?9]*/install/update.pre ; do
         echo "Processing: $i" > /dev/tty3 2>&1
         [ -x "$i" ] && "$i"
    done
    
  4. Para copiar el programa de árbol en el directorio /bin, escriba:

    cp /usr/bin/tree dirstruct/linux/suse/i386-9.2/inst-sys/bin/
    
  5. Para crear el archivo CRAMFS, escriba:

    mkfs.cramfs work/ driverupdate
    

    El archivo CRAMFS es necesario para la distribución de SUSE.

  6. Para copiar el archivo driverupdate en /srv/tftp/boot, escriba:

    cp driverupdate /srv/tftp/boot
    
  7. Añada las siguientes líneas al final del archivo /srv/tftp/boot/settings.txt:

    # SUSE driver update
    for i in /update/[0?9]*/install/adddir.s ; do
         [ -x "$i" ] && "$i"
         rm $i
    done
    

    Esto hace que se ejecute el guión adddir.s, que permite crear enlaces simbólicos con todos los archivos nuevos que se copien.

    Estas líneas es posible que ya estén incluidas en el archivo settings.txt.

  8. Vuelva a arrancar el dispositivo habilitado para PXE.

    Debería mostrarse el texto “ZENworks 10 Patch 1” en el indicador del modo de mantenimiento de generación de imágenes una vez que el sistema operativo se haya arrancado.

  9. Ejecute el programa tree.

Todos los archivos que haya colocado en el archivo driverupdate se encuentran ahora en el directorio /update del sistema operativo después de arrancar. A continuación, el guión adddir.s (o el código que haya añadido al archivo settings.txt en el Paso 7) creará enlaces simbólicos en el sistema de archivos root que harán referencia a los archivos correspondientes de la estructura del directorio /update. Puede comprobar este hecho ejecutando:

/# which tree
/bin/tree
/# ll /bin/tree
lrwxrwxrwx  1 root root 29 Aug 31 21:45 /bin/tree -> /update/000/inst-sys/bin/tree

Si desea únicamente incluir un nuevo controlador de hardware o un módulo del kernel en el sistema operativo de generación de imágenes, un proceso más fácil consiste en copiar el archivo .ko en el directorio /dirstruct/linux/suse/i386-9.2/modules/. A continuación, el sistema operativo de generación de imágenes carga automáticamente todos los archivos .ko que haya en este directorio.