ImageX y el formato de imagen WIM

La implementación de imágenes de disco basadas en archivos es una característica fundamental de Windows Vista.

Como persona dedicada a la implementación de equipos de escritorio empresariales (Business Desktop Deployment, BDD), Microsoft no suele ofrecerme muchas sorpresas.

Es cierto que la compañía me ha facilitado las herramientas necesarias para realizar mi trabajo, pero hacía tiempo que no sentía curiosidad por algo nuevo, hasta la aparición de Windows Vista.

La instalación de Windows Vista se basa en la implementación de imágenes de disco, y para ello Microsoft ofrece un nuevo formato de imagen, WIM (Windows Imaging Format), y una herramienta para trabajar con él: ImageX, incluida en el Kit de instalación automatizada de Windows (Windows AIK).

Formato de imagen basada en archivos

Antes de hablar de ImageX, es mejor describir el formato de imagen que utiliza: el formato de imágenes de Windows (WIM).

A diferencia de los formatos de imagen basados en sectores, tan comunes estos días, WIM se basa en archivos, lo que le da varias ventajas sobre el resto de formatos:

  • WIM es un formato de imagen independiente del hardware, lo que significa que una misma imagen puede servir para diferentes configuraciones de hardware.
  • WIM permite almacenar varias imágenes en un mismo archivo, por ejemplo, distintas ediciones (SKU) de Windows.
  • Las imágenes se pueden almacenar en un mismo archivo con o sin sus aplicaciones principales.
  • Una de las imágenes se puede marcar como iniciable, lo que permite arrancar un equipo desde una imagen de disco incluida en el archivo WIM.

Compresión, instancia única y mantenimiento sin conexión

El formato de archivo WIM también admite la compresión y la creación de instancias únicas, lo que reduce significativamente el tamaño de las imágenes.

La creación de instancias únicas es una técnica con la que se pueden almacenar dos o más copias de un archivo en el espacio de una sola copia.

Por ejemplo, si las imágenes 1, 2 y 3 contienen el archivo A, esta técnica almacena una sola copia del mismo y hace que las tres imágenes apunten a dicha copia.

Con el formato de imagen WIM también se puede hacer el mantenimiento de las imágenes sin conexión, es decir, sin tener que arrancarlas.

Componentes del sistema, revisiones y controladores se pueden agregar y eliminar sin necesidad de crear una nueva imagen.

En lugar de pasar horas actualizando una imagen, como ocurre con Windows XP, la actualización se realiza en minutos.

Por ejemplo, para agregar una revisión a una imagen de Windows XP es preciso iniciar la imagen principal, agregar la revisión y volver a preparar la imagen.

Con Windows Vista basta con actualizar la imagen sin conexión, sin necesidad de arrancarla.

El formato de imagen WIM permite instalar una imagen de disco en particiones de cualquier tamaño, siempre que quepan sus archivos, a diferencia de los formatos de imagen basados en sectores, que requieren una partición del mismo tamaño o mayor que el disco de origen.

Windows Vista proporciona una API para el formato de imagen WIM, denominada WIMGAPI, que los desarrolladores pueden utilizar para trabajar con los archivos de imagen WIM.

Con el formato de imagen WIM la implementación no es destructiva, lo que significa que los datos se pueden mantener en el volumen al que se aplica la imagen, puesto que la aplicación de esta no borra el contenido existente en el disco.

Características de ImageX

El propio programa es muy directo, una de las razones por las que me gusta tanto.

Es una utilidad simple de línea de comandos que se ejecuta desde un símbolo del sistema o desde el entorno de preinstalación de Windows (Windows Preinstallation Environment, Windows PE).

En otras palabras, se interactúa con ImageX de la misma forma que con Xcopy. Espero que el hecho de que se trate de una utilidad de línea de comandos no desanime a nadie.

Por mi parte, prefiero que las herramientas de implementación de imágenes de disco que utilizo funcionen así, ya que resulta extremadamente sencillo automatizarlas con scripts.

Y como los archivos por lotes (.bat) de Windows son bastante potentes, automatizar estas operaciones requiere muy poco código.

Las características principales de ImageX permiten capturar un volumen en un archivo WIM y aplicar un archivo WIM a un volumen.

Por ejemplo, el comando que se emplea para capturar la imagen no es más que imagex /capture C: D:\imagen.wim "Nombre", donde C: es la unidad que se captura, D:\imagen.wim el archivo de imagen que se crea y "Nombre" el nombre que se le da a la imagen.

Y el comando para aplicar una imagen a un volumen es imagex /apply D:\imagen.wim 1 C:, donde 1 indica a ImageX que debe aplicar la imagen con número de índice 1 del archivo imagen.wim, y C: es la unidad de destino.

Nota: ImageX formaba parte del Windows AIK en la época de Windows Vista y 7. A partir de Windows 8, Microsoft lo retiró y lo sustituyó por DISM, que es la herramienta que se usa hoy. Los comandos equivalentes son dism /capture-image /imagefile:D:\imagen.wim /capturedir:C:\ /name:"Nombre" para capturar y dism /apply-image /imagefile:D:\imagen.wim /index:1 /applydir:C:\ para aplicar.

Opciones de la línea de comandos de ImageX

  • /append: anexa una imagen de volumen a un archivo WIM existente.
  • /apply: aplica una imagen de volumen a la unidad especificada.
  • /capture: captura una imagen de volumen en un nuevo archivo WIM.
  • /commit: guarda los cambios realizados en una imagen montada (se usa junto con /unmount).
  • /compress: establece el tipo de compresión: ninguna (none), rápida (fast) o máxima (maximum).
  • /config: utiliza el archivo especificado para establecer opciones avanzadas, como los archivos que se excluyen de la captura.
  • /delete: elimina una imagen de un archivo WIM con varias imágenes.
  • /dir: muestra una lista de los archivos y carpetas que incluye una imagen de volumen.
  • /export: copia una imagen de un archivo WIM a otro.
  • /info: muestra, en formato XML, la información del archivo WIM y de las imágenes que contiene.
  • /ref: establece referencias a otros archivos WIM (por ejemplo, las partes de un WIM dividido) para una operación de aplicación.
  • /scroll: desplaza la salida en pantalla para poder redirigirla.
  • /split: divide un archivo WIM existente en varias partes de solo lectura (archivos.swm).
  • /verify: comprueba que no haya errores ni archivos duplicados durante la operación.
  • /mount: monta una imagen, con acceso de solo lectura, en el directorio especificado.
  • /mountrw: monta una imagen, con acceso de lectura y escritura, en el directorio especificado.
  • /unmount: desmonta la imagen montada en el directorio especificado.
  • /?: muestra los parámetros válidos de la línea de comandos de ImageX.

En mi opinión, hay una capacidad que merece un tratamiento más detallado, solo porque la considero estupenda: la de montar una imagen en un directorio.

Permite montar la imagen, modificarla como se hace con cualquier archivo o carpeta del sistema de archivos y, a continuación, desmontarla.

Por ejemplo, se puede montar una imagen del sistema operativo con imagex /mountrw, agregarle controladores de dispositivos y después desmontarla guardando los cambios con imagex /unmount /commit. Sin duda, es mucho mejor que tener que regenerar la imagen de disco desde cero.

Instalación de Windows Vista

Ahora que ya conoce un poco ImageX y el formato de imagen WIM, seguro que se pregunta cómo se realiza la implementación de las imágenes de disco.

La instalación de Windows Vista, ya sea una actualización local o una instalación desde cero, es un proceso nuevo y basado por completo en imágenes.

Tanto es así que el propio DVD de Windows Vista trae el sistema operativo en un archivo de imagen WIM (install.wim).

De hecho, el proceso de actualización local funciona mejor que en Windows XP.

La razón es que la actualización es más bien una instalación limpia en la que se migran la configuración, los documentos y las aplicaciones del usuario desde la versión anterior de Windows.

Una mejor denominación para la actualización local sería un proceso de instalación desde cero pero con mantenimiento de los datos y las preferencias del usuario.

Estos son los pasos para implementar una imagen de disco de Windows Vista con las herramientas de Microsoft:

  1. La imagen de Windows Vista se personaliza con el Administrador de imágenes del sistema de Windows (Windows SIM), incluido en el Windows AIK, para seleccionar controladores de dispositivos y componentes opcionales como los idiomas.
  2. Se instala en un equipo de referencia, se le agregan las aplicaciones (como Microsoft Office o una aplicación de línea de negocio), se prepara con Sysprep, se captura con ImageX y se guarda en la red.
  3. Se implementa en el equipo del usuario. La instalación se puede automatizar por completo mediante archivos de respuesta (unattend.xml) y scripts. Si se actualiza un equipo desde una versión anterior de Windows a Windows Vista, el programa de instalación migrará los documentos, la configuración y las aplicaciones de los usuarios sin que estos tengan que intervenir.

Conclusión

ImageX y el nuevo formato de imagen WIM son una mejora significativa de Windows Vista. Estas tecnologías ofrecen una forma más rápida y rentable de implementar el nuevo sistema operativo.

El número de imágenes de disco que se deben mantener se reduce, y su mantenimiento resulta mucho más sencillo y requiere menos tiempo.

Y gracias al nuevo proceso de instalación basado en imágenes, la implementación de equipos de escritorio se realiza en menos de una hora, incluida no solo la instalación del equipo, sino también la migración de los datos de los usuarios.

Por Jerry Honeycutt