viernes, 4 de noviembre de 2011

Creando disco de instalación Windows 7

Este post pertenece a la serie de los AIK. Es que este programa puede dar mucho juego. :). Hoy, voy a hablar de una cosa muy archiconocida. Montarse el WinPE para que haga una instalación. ¿Veis? Es algo que muchos habréis hecho ya. La verdad, yo lo intenté en su momento, en diversas ocasiones, y no lo conseguí. Hasta hace poco. Lo logré. Hay cosas que en los manuales no cuentan, o por olvido, o porque no les ocurre contarlo. Además, me podría servir para sucesivos posts. ¿Qué más puedo decir? Sí. Por ejemplo, que, como cabezota que soy, me apetece hacerlo de esta forma. No entremos en discusiones de si sirve de algo o no. Si queréis, podemos poner la excusa de que quiero poner las herramientas de sysinternals en el mismo DVD de instalación. O que quiero hacerlo de manera artesanal.

¿Cuánto espacio vamos a necesitar para hacer esta tarea? Pongamos unos 10GB y de sobra.

Lo primero que vamos a necesitar es el entorno para montar todo el tinglado. Así que, crea una carpeta con el comando copype tal y como contamos en otra ocasión. Recuerda: hazlo como admin, lo necesitarás. Yo he llamado a la carpeta installWin7Blog.

También vas a necesitar una serie de paquetes .cab, que son los que nos van a añadir funcionalidades a nuestra imagen. Por defecto se encuentran en C:\Program FilesWindows AIKTools\PETools\arquitectura. Recomiendo hacer una copia a un lugar más accesible.

¿Ya lo tienes? Bien. Ahora, toca manipular la imagen que usaremos de base. Deberíamos de estar dentro de la carpeta recién creada, que va a ser donde vamos a trabajar. Ahora, montaremos la imagen winpe.wim, que está justo ahí, en la carpeta mount. Después, le integraremos los paquetes necesarios.

Copia estos comandos, ponlos en un fichero de texto, justo dentro de la carpeta que acabas de crear, y cambia la ruta de los ficheros .cab a la que corresponda. Desde la consola de las herramientas de implementación, ejecútalo.

@echo off
imagex /mountrw winpe.wim 1 mount


dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\lp_es-es.cab


dism /image:mount /add-package:f:\winimgs\packagesDism\winpe-hta.cab 
dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\winpe-hta_es-es.cab 


dism /image:mount /add-package:f:\winimgs\packagesDism\winpe-legacysetup.cab 
dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\winpe-legacysetup_es-es.cab 


dism /image:mount /add-package:f:\winimgs\packagesDism\winpe-mdac.cab 
dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\winpe-mdac_es-es.cab 


dism /image:mount /add-package:f:\winimgs\packagesDism\winpe-scripting.cab
dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\winpe-scripting_es-es.cab


dism /image:mount /add-package:f:\winimgs\packagesDism\winpe-setup.cab 
dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\winpe-setup_es-es.cab 


dism /image:mount /add-package:f:\winimgs\packagesDism\winpe-setup-client.cab 
dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\winpe-setup-client_es-es.cab


rem dism /image:mount /add-package:f:\winimgs\packagesDism\winpe-setup-server.cab 
rem dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\winpe-setup-server_es-es.cab


dism /image:mount /add-package:f:\winimgs\packagesDism\winpe-wds-tools.cab 
dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\winpe-wds-tools_es-es.cab


dism /image:mount /add-package:f:\winimgs\packagesDism\winpe-wmi.cab 
dism /image:mount /add-package:f:\winimgs\packagesDism\es-es\winpe-wmi_es-es.cab 
  
call imagex /commit /unmount mount


La última línea la puedes obviar, de momento. Esta es la que desmonta la imagen "comiteando" los cambios hechos en ella. Como vamos a añadir más cosas, puedes ejecutarla después, o volver a montar y desmontar las veces que haga falta. Eso lo dejo a tu elección.


¿Qué vamos a necesitar añadir?


Lo que necesites. Por ejemplo, como decía antes, una carpeta con las sysinternals, dentro de otra que se llamará herramientas. Para que quede claro, que no está muy bien explicado, sería mount\herramientas\sysinternals. También podríamos poner, por ejemplo, el contenido de la carpeta Tools, que tiene Windows AIK en Program Files. Eso sí. Mucho ojo con no añadir muchas cosas, que si ocupa demasiado, no os arrancará el disco por problemas en memoria y tendréis que volver a repetir el proceso (como un servidor está haciendo ahora mismo).

La siguiente operación va a ser importante. En cada uno de los manuales que he encontrado, no lo dicen. Es más, después, cuando a la gente le sucede, no es tan fácil encontrar la respuesta. Esto es lo que te saldría si te quedases aquí:


Elige un paquete de idiomas... en un combo vacío

¿Cómo se soluciona eso de que el idioma que va a instalar esté vacío? En teoría, hay que ejecutar una línea de comandos. Pero no he conseguido hacerlo funcionar así. Después de mucho ensayo y error (sólo lo conseguí una vez) esto es lo que hay que ejecutar (o añadir al script de más arriba):

intlcfg -dist:ISO -image:mount defaultlang:es-ES -all:es-ES
copy ISO\sources\lang.ini mount\sources\

Si te ofrece sobreescribir el otro lang.ini, acepta. He de decir que he hecho varios intentos para conseguirlo. Como ya he comentado antes, sólo lo conseguí una vez antes de escribir este artículo. Aún así, si alguien conoce los parámetros adecuados para que no haga falta hacer ese copy, por favor, comentadlo.

Ahora, dentro de ISO\sources, meteremos la imagen install.wim. Recodermos que en este .wim está el sistema operativo que acabará instalado en el disco duro.

Una vez has acabado de añadir todas las cosas que se necesita para arrancar el disco tal y como queremos que lo haga, sigue las instrucciones del post indicado antes, desde el momento en el que te indico que sobreescribas boot.wim.

¿Tienes la .iso lista? Vamos a arrancarla.

Elige un paquete de idiomas...

Aquí tenemos la posibilidad de escoger el paquete de idiomas. En este caso, el español. Como ya sabéis, he jugado lo suficiente como para tener lo mínimo necesario para llegar hasta aquí. En principio, si queréis otros idiomas, hay que incluir los paquetes necesarios en el script principal y, después, indicarlo también con el comando intlcfg. Alguien tendrá que corregirme si me equivoco. 

Ahora que hemos llegado hasta aquí, tendremos que lanzar la instalación, digo yo. ¿No? Pues va a ser que...

No encuentra OSimage / image.wim

Eso es porque el ejecutable setup.exe, por dejecto, busca la imagen en sources. Pero no del DVD, sino del ramdisk que se crea al arrancar. Ya lo he intentado meter ahí dentro. El sistema no arranca. Si el boot.wim ocupa 4 GB... Por eso acabó en directamente en el disco. ¿Qué hago para instalarlo? Habrá que abrir una consola pulsando SHIFT+F10.

setup /installfrom:%unidadArranque%\sources\install.wim

Y...

Selecciona el idioma que se va a instalar

Selecciona versión y arquitectura

Y ahí lo dejo. No hace falta que ponga más pantallazos al respecto.

Como habéis visto, basándome en posts anteriores, hemos montado este disco de instalación "rudimentario". Recordemos que la imagen de arranque tiene también las herramientas, que se encontrarán en el ramdisk.

Tengo otro post más o menos preparado en el que vamos a utilizar este disco. O lo vamos a intentar. Si no consigo que me acabe de funcionar del todo, posiblemente busque otra fórmula o método para dejarlo "niquelado".

Ya sabéis que si tenéis alguna idea que queráis compartir, sugerencias, inconvenientes, dudas... dejadme un comentario.

No hay comentarios:

Publicar un comentario