[Tip] Solucionar el error 0xc000000f al realizar boot con una imagen de Windows PE
Hola a todos,
En esta ocasión, quiero compartirles un pequeño tip de un gran martirio que tenía, y es que en plan de aprender del fascinante mundo del Deployment estaba tratando de generar una Imagen de Preinstalación personalizada (Windows PE) con la ayuda de la documentación de Microsoft TechNet.
Pues bien, en general la creación de un Windows PE básico (Por donde se empieza!) es corto, y hasta ahí muy bien todo, pero… el problema empezó al tratar de probar el booteo de la imagen en el Equipo de referencia (Donde se realiza la instalación maestra de Windows 7) que en este caso era utilizando Windows Virtual PC para todo este entorno de prueba.
Después de reconocer la unidad e iniciar el boot, obtenía un error con código 0xc000000f que hacía referencia al boot:
Al principio, casi por seguridad pensaba que el Windows PE me había quedado mal montado en la imagen, posiblemente con el archivo de boot, o copiando archivos, así que procedí a recrearlo pero con el mismo resultado!
Después de intentar crearlo desde cero no pude obtener un correcto booteo y el error seguía apareciendo! Así que me puse a analizar ¿Qué hay de mal, si estoy siguiendo documentación paso a paso de Microsoft TechNet y hasta con nombres iguales?
Para mi GRAN sorpresa, el problema estaba ahí, en la documentación!
¿En la documentación? ¿Por qué?
Decidí indagar un poco sobre este código de error (Por aquello de saber la causa para encontrar la solución), y me encuentro con un post dentro de los queridos foros de Microsoft TechNet en inglés donde varias personas tenían este problema y justamente siguiendo la documentación oficial del proceso básico y para mi fortuna, más documentación un poco más profunda sobre la creación de una imagen de Windows PE personalizada dentro de los artículos que hay para Windows Vista.
El problema en cuestion es que la documentación referente a la creación de un Windows PE básica, no indica quizás uno de los pasos más importantes, y es la de remplazar el archivo de boot predeterminado al directorio de \ISO\Sources que en realidad está en la carpeta raíz generalmente con el nombre que le hayamos puesto pero que en Sources no se encuentra, entonces, sin archivo de boot, no hay boot!
La prueba:
La documentación a la que me refiero “Paso a paso: implementación básica de Windows para profesionales de TI” indica los tres pasos, creación de la estructura necesaria para el PE con copype.cmd, copia de imagex.exe para captura e implementación y por último, la creación de la ISO con la herramienta oscdimg pero y el boot qué?
*Nota: La documentación en inglés está con el mismo “inconveniente”.
Conclusión: Al indicarle que cree la ISO booteable con el contenido de winpe_x86\ISO (Para este ejemplo) no tomará la imagen de booteo (.wim) y por tanto error!
Solución:
Tal como mencioné dentro de esta documentación (También de TechNet pero para Vista) sí especifica este gran detalle, por lo que el proceso (Por lo que veo) básico para la creación de un Windows PE sería:
*Recordemos que lo siguiente se debe realizar desde la consola de comandos del WAIK, ya que es la que está configurada automáticamente para utilizar las herramientas necesarias.
- Crear la estructura de directorios para la creación de una imagen de Windows PE, para esto utilizamos el script de copype.cmd, simplemente indicamos copype.cmd <arquitectura> <destino> , para mi ejemplo la llamaré WinPE, de arquitectura x86 y la guardaré en C:\ el comando sería: copype.cmd x86 C:\WinPE
- Copiar ImageX dentro de la carpeta \ISO para poder realizar la captura de la imagen de referencia y poder seguir con proceso de implementación, el comando (Aplicando el nombre de la carpeta que puse de ejemplo WinPE) sería:
copy “C:\Program Files\Windows AIK\Tools\x86\imagex.exe” C:\WinPE\ISO\

*El paso importante:
- Sustituir (Copiar en este caso) el archivo de imagen Boot.wim por la nueva imagen personalizada, se debe llamar Boot.wim, en otras palabras, utilizaré esta copia para que mi imagen lleve la imagen de booteo personalizada, la debo integrar dentro de \ISO\Sources para mi ejemplo sería:
copy C:\WinPE\winpe.wim C:\WinPE\ISO\Sources\Boot.wim (Con Boot.wim, estoy renombrando winpe.wim a Boot.wim)

- Por último, vamos a crear la imagen de disco RAM personalizada para poder arrancar desde un CD (Virtual o físico) o un medio UDF extraible con la herramienta de oscdimg. Para mi ejemplo sería:
oscdimg –n –bC:\WinPE\etfsboot.com C:\WinPE\ISO C:\WinPE\WinPE_x86.iso
*Nota: Recordemos que a cada quién el “WinPE” le varía según el nombre que especifique a la hora de crear el directorio en el primer comando, y “WinPE_x86.iso” también según el nombre que le quiera especificar a la imagen ISO.
Finalmente, tenemos nuestra imagen .ISO lista para probar, sea grabándola, o para este ejemplo (Y en el que surgió el problema) en mi máquina de referencia dentro de Windows Virtual PC, para nuestra alegría, ahora el proceso (Después de indicar el orden de booteo) iniciará correctamente:

Todo listo para captura la imagen, implementar y seguir aprendiendo!
Todos los comentarios bienvenidos, de ante mano disculpas por los errores que pueda tener!
Saludos,
-Checho-