lunes, 1 de diciembre de 2014

sysprep, imagex y oscdimg errores no tan comunes pero no tan imposibles

El otro día necesité crear una imagen de Windows 7 con las actualizaciones integradas para poder reparar un sistema que quedó corrupto por apagarse durante una actualización (no podía, debido a esto, iniciar servicios tan básicos cono SENS o DHCP, por lo que no se conectaba a internet y muchos componentes del mismo Windows no funcionaban, incluyendo restaurar sistema y sfc).

Esta imagen la creé usando sysprep para generalizar una instalación limpia de Windows actualizada a la fecha. Luego imagex y oscdimg para capturar la imagen y generar un archivo iso que luego se puede quemar en un DVD. Este DVD fue usado después para reparar el otro sistema sin tener que formatear.

Describir la técnica por la que se puede generar esta imagen personalizada no es el objetivo de esta publicación. El objetivo es describir unos errores extraños que se pueden producir durante el proceso. Esta entrada está dirigida a personas que ya conocen la técnica o que están siguiendo una guía y se encuentran con alguno de los errores mencionados abajo.

La mayoría de estos errores me ocurrieron por copiar y pegar comandos de la internet en vez de teclearlos yo mismo. Si me pasó a mí le puede ocurrir a algún otro así que lo dejo documentado aquí:

Al ejecutar el comando:

sysprep /generalize /shutdown /oobe

Obtenemos el mensaje:

A fatal error occurred while trying to sysprep the machine.

La solución es detener y deshabilitar el servicio "Servicio de uso compartido de red del reproductor de Windows Media" (WMPNetworkSvc). Para detener servicios o deshabilitar servicios podemos usar la herramienta services.msc. Para ejecutarla escribir su nombre en el cuadro de búsqueda del menú inicio.

Al ejecutar el comando:

oscdimg -n -m -bC:\Win732SP1\boot\etfsboot.com C:\Win732SP1\ C:\Win7_32_SP1_2014_10_1.iso

Obtenemos el mensaje:

Failure enumerating files in directory "C:\PROGRAM FILES\WINDOWS AIK\TOOLS\PETOOLS\ûN\"

Cuando me pasó esto es porque por pura pereza, en vez de ingresar el comando con el teclado, copié y pegué de una entrada en un blog (enlaces abajo). Ojo, que esos caracteres de guión no son el caracter que ustedes piensan. El caracter correcto, que se puede usar adelante de los parámetros de un comando, es este:

Caracter Código ASCII (Decimal) Nombre
- 45 Signo de menos - Guión

Pero el caracter que se usaba para los guiones en el blog del cual yo copié el comando era este:

Caracter Código (Formato U+) Nombre
U+2013 End Dash (guión de finalización)

Por lo tanto el comando fallaba. Si forzamos la vista o hacemos zoom lo suficiente veremos que no son iguales los dos guiones. Al final se me ocurrió que el guión tenía algo raro y los reemplacé todos por el que se pone con el teclado numérico (signo de menos) y el comando funcionó.

Al ejecutar el comando:

xcopy "C:\Program files\Windows AIK\Tools\x86\Imagex.exe" C:\WinPE32\ISO\

Obtenemos el mensaje:

Número de parámetros no válido

Cuidado, que las comillas dobles que protegen la ruta a imagex.exe no son el caracter que ustedes piensan. El problema, es que la fuente que se usa en una ventana de terminal no puede mostrar ese tipo de comillas así que muestra la de siempre, pero el código de caracter de ellas es en realidad incorrecto, no es el de las comillas válidas.

Las comillas dobles que se pueden usar para encerrar rutas son las que se ponen con SHIFT+2 en el teclado y su código de caracter es el siguiente:

Caracter Código ASCII (Decimal) Nombre
" 34 Quotation Mark (marca de diálogo, comillas)

Las comillas que contenía el comando que copié y pegué, eran estas:

Caracter Código (Formato U+) Nombre
U+201C Left Double Quotation Mark (comillas dobles izquierda)
U+201D Right Double Quotation Mark (comillas dobles derecha)

Provocando el mensaje de error ya mencionado. Tardé un rato en darme cuenta de qué ocurría. El hecho de que en la terminal las comillas se impriman como comillas normales a pesar de que no lo son sólo complicó más el asunto. Al final se me dio por pegar el comando en el bloc de notas para analizarlo y ahí sí se notaba que las comillas no eran las correctas. Fue cuestión de borrarlas y reemplazarlas por la que se pone con SHIFT+2 (en un teclado español).

Al ejecutar el comando:

imagex.exe /capture F: C:\Win732SP1_captured\install.wim "Windows 7 SP1" /compress fast /verify

En lugar de empezar el proceso se imprimía en pantalla la ayuda del comando.

De nuevo, cuidado que las comillas pueden no ser las que ustedes esperan, tecleen el comando ustedes mismos.

Lo que hay para aprender aquí, es que los comandos deberíamos siempre teclearlos nosotros mismos.

Más sobre por qué algunos blogs, foros, etc, pueden contener estos caracteres

Si han usado Wordpress alguna vez, sabrán que ciertas versiones de Wordpress reemplazan automáticamente las comillas rectas " por un par de comillas curvas izquierda y derecha “”. Debe haber una forma de evitarlo pero ahora no la tengo presente.

El editor de texto Writer de la suite OpenOffice.org también reemplaza las comillas. Ahora no tengo un Microsoft Word para probar, pero estoy seguro que Word también lo hace.

El uso de estas comillas mejora la estética del texto. Pero al citar comandos debemos tener cuidado de usar las comillas correctas.

Material consultado

Prepare to Capture an Image for Deployment (Generalize)

Crear imagen de Windows 7 con Service Pack 1 Beta integrado

1 comentarios:

Anónimo dijo...

me salvaste

Publicar un comentario