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:
El método más sencillo consiste en editar el archivo settings.txt, que se encuentra en la raíz del CD de generación de imágenes, o en /srv/tftp/boot en el servidor de generación de imágenes de ZENworks, en el caso de los arranques PXE.
Cuando use una partición de ZENworks, podrá arrancar en el modo manual o de mantenimiento; a continuación, deberá montar la partición de ZENworks y copiar el settings.txt modificado y los archivos de initrd o root en la partición de ZENworks que ha montado.
Otro método sencillo consiste en editar los archivos .cfg que se encuentran en /srv/tftp, en el servidor de generación de imágenes de ZENworks, en el caso de arranques PXE.
Puede modificar los archivos de los sistemas de archivos initrd o root, pero se necesita un entorno Linux para realizar el proceso de modificación. Los archivos requeridos durante la configuración inicial (durante el tiempo de procesamiento de linuxrc) como, por ejemplo, los controladores de LAN, deben colocarse en el sistema de archivos initrd. Otros archivos que no sean necesarios hasta que el archivo de guión zenworks.s asuma el control se pueden colocar en el sistema de archivos root (por ejemplo, un guión de generación de imágenes) o también puede usar el archivo driverupdate.
Este método se describe en esta sección.
En las siguientes secciones se indican distintos métodos para modificar los archivos de recursos 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.
Los archivos deben colocarse dentro del directorio /addfiles del CD de arranque de generación de imágenes, en los directorios con los nombres adecuados. 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:
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; tiene que usar un editor de texto compatible con Linux o UNIX como, por ejemplo, TextPad.
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/miguión.s en lugar del comando normal img auto.
É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.
Puede usar el siguiente procedimiento para el sistema de archivos root, que consiste simplemente en sustituir “initrd” por “root” en los pasos. Sin embargo, los controladores Linux siempre deben estar colocados en el sistema de archivos initrd, no en el sistema de archivos root.
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.
Para modificar el sistema de archivos initrd o root:
Usando un dispositivo Linux, cree un directorio de trabajo y acceda a él.
Para copiar initrd desde el servidor PXE o el CD de arranque en el nuevo directorio de trabajo:
Con 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\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.
Para cambiar el nombre de initrd a initrd.gz, escriba:
mv initrd initrd.gz
Para descomprimir el archivo initrd.gz, escriba:
gunzip initrd.gz
Para crear otro directorio de trabajo para usarlo como punto de montaje en los pasos siguientes, escriba:
mkdir work
Para montar el sistema de archivos initrd en el directorio /trabajo, escriba:
mount -o loop initrd work
Para copiar los archivos o el controlador actualizado en el sistema de archivos montado 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.
Para desmontar el sistema de archivos initrd, escriba:
umount work
Para comprimir el nuevo archivo initrd, escriba:
gzip -v9c initrd > initrd.gz
Para cambiar el nombre de initrd.gz a initrd, escriba:
mv initrd.gz initrd
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\loader del CD de arranque.
Otra forma de personalizar la distribución de generación de imágenes es 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 de generación 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 el segundo método. Para obtener información sobre los demás métodos, consulte "Tech Talk #3 - Spittin' Image" (Documento técnico número 3: imágenes perfectas) en la publicación Novell Connection Magazine.
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:
Cree un directorio de trabajo en el servidor de generación de imágenes como, por ejemplo, /trabajo.
(Condicional) Si va a usar el archivo driverupdate, descargue el archivo driverupdate.tgz en el directorio /trabajo y descomprímalo usando:
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.
(Condicional) Si va a crear manualmente los directorios, cree la siguiente estructura en el directorio /trabajo:
`-- dirstruct `-- linux `-- suse |-- i386-9.2 |-- 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 7 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
Para copiar el programa de árbol en el directorio /bin, escriba:
cp /usr/bin/tree dirstruct/linux/suse/i386-9.2/inst-sys/bin/
Para crear el archivo CRAMFS, escriba:
mkfs.cramfs dirstruct/ driverupdate
Para copiar el archivo driverupdate en /srv/tftp/boot, escriba:
cp driverupdate /srv/tftp/boot
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.
Vuelva a arrancar el dispositivo habilitado para PXE.
Debería mostrarse el texto “ZENworks 7 Patch 1” en el indicador bash una vez que el sistema operativo se haya arrancado.
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.