USB booteable con varios sistemas operativos (ACTUALIZADO)

Hace ya unos días estuve formateando varias maquinas e instalando varios sistemas operativos en ellas a través de un pen drive, y al final se me metió en la cabeza hacer un único USB que tuviera para instalar Windows XP, Windows 7 x86 y x64, y Ubuntu desktop en sus versiones de 32 y 64 bits.
Después de rebuscar mucho por internet vi que con el gestor de arranque grub4dos podía conseguir algo así, pero no fue nada fácil. Hacer un pendrive con un solo sistema operativo instalable es relativamente sencillo, pero cuando se quiere meter más de uno la cosa se complica bastante.
Para este tutorial necesitaremos un pendrive con capacidad suficiente para albergar todos los sistemas operativos y utilidades que queremos integrar, en el caso de querer integrar todos los sistemas mencionados debería ser suficiente con un pendrive de 32gb de capacidad, aunque depende de las isos que tengáis.
He estado probando muchos programas para hacer pendrives booteables pero no he encontrado ninguno que me permita instalar todo lo que he mencionado anteriormente, pero sí que hay uno que prácticamente nos hace todo el trabajo. Este es WinSetupFromUSB (versión del tutorial) pero por desgracia no he encontrado ninguna página oficial por lo que he subido un archivo zip en mega.co.nz con todo lo necesario para hacer funcionar el programa.
Antes de nada necesitaremos tener una iso de cada sistema operativo que queramos agregar (este tutorial incluye WinXP, WinVista (32 y 64 bits), Win7 (32 y 64 bits), Win8 (32 y 64 bits) Ubuntu 12.04.2 (32 y 64 bits) y Ubuntu 13.04 (32 y 64 bits), para windows xp necesitamos tener acceso a la carpeta raíz del cd de instalación (ya sea montando su iso en una unidad virtual, copiando el cd en el disco duro o como sea).
Una vez descargado y descomprimido el programa necesitamos encenderlo con privilegios de administración y veremos la siguiente ventana :
En vista de que mucha gente descarga este archivo con gestores de descarga e inicia hasta 20 descargas paralelas, no me queda otra solución que dejarlo en un servidor externo, por lo que si es eliminado de dicho servidor, me vais a tener que avisar para que vuelva a subirlo.
El caso es que con la versión del tutorial lo tengo todo probado al 100%, y utilizar la nueva versión requiere ponerse a instalar windows para probar que todo funcione correctamente.
De todas formas os dejo el enlace de la nueva versión que está alojado en softpedia, por si os queréis arriesgar... WinSetupFromUSB (nueva versión).

Formateando y preinstalando
- Lo primero que debemos hacer es marcar la casilla "Autoformat it with FBinst" y luego seleccionaremos como tipo de partición : NTFS. (Si teneis problemas para arrancar algún linux, probad con FAT32)
- En segundo lugar marcaremos la casilla "Windows 2000/XP/2003 Setup" y buscaremos el directorio raíz del cd de instalación de Windows XP. (En mi caso me he hecho una copia del cd en la carpeta "WinXP_SP3" y luego le he añadido unos drivers con nLite, este paso se puede omitir si no deseáis incluir windows xp)
- Una vez seguidos estos pasos presionaremos el botón "GO" y el programa formateara y añadirá Windows XP al pendrive.
Añadiendo los demás sistemas operativos
Antes de nada deberíais saber que el Grub es el gestor de arranque que se usa actualmente en la mayoría de distribuciones linux, que además tiene una versión compatible con dos/windows (Grub4dos). Este gestor es totalmente configurable aunque es algo complicado de configurar.
Para no liar mucho la cosa editando el menú del grub os he hecho un zip con varios archivos que deberéis copiar dentro de la raíz del pendrive que podéis descargar desde este enlace :
Una vez copiados los archivos del zip dentro del pendrive os debería quedar la siguiente estructura :

He montado el menu.lst de forma que si no encuentra alguno de los sistemas operativos, no lo mostrará en el menú. Este menu.lst soporta los siguientes sistemas operativos y utilidades :
Sistemas operativos en formato ISO
Windows Vista x86 (32 bits) | /Isos/WindowsVista/WinVista_x86.iso |
Windows Vista x64 (64 bits) | /Isos/WindowsVista/WinVista_x64.iso |
Windows 7 x86 (32 bits) | /Isos/Windows7/Win7_x86.iso |
Windows 7 x64 (64 bits) | /Isos/Windows7/Win7_x64.iso |
Windows 8 x86 (32 bits) | /Isos/Windows8/Win8_x86.iso |
Windows 8 x64 (64 bits) | /Isos/Windows8/Win8_x64.iso |
Ubuntu desktop 12.04.2 (32 bits) | /Isos/Ubuntu/ubuntu-12.04.2-desktop-i386.iso |
Ubuntu desktop 12.04.2 (64 bits) | /Isos/Ubuntu/ubuntu-12.04.2-desktop-amd64.iso |
Ubuntu desktop 13.04 (32 bits) | /Isos/Ubuntu/ubuntu-13.04-desktop-i386.iso |
Ubuntu desktop 13.04 (64 bits) | /Isos/Ubuntu/ubuntu-13.04-desktop-amd64.iso |
Utilidades
Disco de rescate de KasperSky 2013 | /Isos/Utilidades/KasperSky2013.iso |
Hirens Boot 15.2 | /Isos/Utilidades/Hiren's.BootCD.15.2.iso |
Gparted live 0.17.0-1 | /Isos/Utilidades/gparted-live-0.17.0-1-i486.iso (Gracias a hunt3r25). |
Podéis añadir cualquiera de los sistemas operativos y utilidades mencionadas anteriormente, siempre que respetéis la ruta indicada, es decir.. si queréis añadirle Windows 8 de 64 bits, tenéis que crear la carpeta Isos
dentro del pendrive, y luego dentro de esta carpeta tenéis que crear la carpeta Windows8
y finalmente dentro de esta ultima carpeta debéis añadir la imagen que contiene Windows 8 con el nombre Win8_x64.iso
.
Para evitar ciertos errores comunes os recomiendo crear toda la estructura del directorio /Isos/
en vuestro disco duro, colocando allí todas las isos que queréis, y luego volcar la carpeta /Isos/
del disco al pendrive.
Por qué no valen los Todo En Uno? realmente os estoy engañando y si que se pueden hacer llegar a funcionar, pero podría resultar ineficiente como poco. Por no hablar de que hay miles de TEU distintos de gente distinta, y cada uno lo monta a su manera.
Los TEU suelen utilizar el Grub4Dos para sus propios menús y esto significa que con el menú de este tutorial al cargar la ISO del TEU, se abre un segundo Grub4Dos que te muestra sus opciones, carga otra iso que tiene el dentro con el windows que le habéis dicho, y empieza la instalación.
Todo esto supone un enorme gasto de ciclos y de memoria, por lo que en ciertos ordenadores podría llegar a consumir todos los recursos y terminar colgándose la instalación.
Conclusión : Si solo tenéis un TEU y no disponéis de otras isos, yo creo que si miráis dentro de la iso del TEU encontrareis en algún directorio las isos de los windows por separado, pero a decir verdad cada TEU se lo montan a su manera. Si ni así las encontráis, arriba tenéis los enlaces de descarga oficiales para la mayoría de sistemas operativos y utilidades.
Tutorial_USBBoot.zip
en el pendrive, y además debéis grabarlas de una en una, de forma que queden en un solo bloque. Si por ejemplo ponéis a grabar 4 isos a la vez de forma independiente, estas no se grabaran en un bloque continuo, si no que necesitaran ser divididas en varios bloques, y el driver que usamos para cargar las isos no soporta la lectura de estas si no se encuentran en un único bloque.Si os aparece el siguiente mensaje
Error 60: File for drive emulation must be in one contiguous disk area.
es que la iso ha quedado grabada en mas de una parte dentro del pendrive, y por lo tanto no nos sirve.El tema de la fragmentación es algo complicado, así que os voy a poner un ejemplo para que podáis comprenderlo mejor. Supongamos que tenemos un pen de 8Gb, y que tenemos 3 isos que queremos grabarle dentro (Iso1 = 1Gb, Iso2 = 1Gb, Iso3 = 2Gb)
-
Grabamos la Iso1, y luego grabamos la Iso2 de forma que el pendrive queda así :
Iso1 Iso2 -
Ahora si eliminamos la Iso1 el pendrive quedaría así :
Iso2 -
Si después de eliminar la Iso1 grabamos la Iso3, el pendrive quedaría así :
Iso3 Iso2 Iso3
En este caso concreto la Iso2 funcionaría perfectamente, pero con la Iso3 recibiríamos el Error 60.
Conclusión : la mejor manera de grabar todos los datos correctamente, es crear la estructura en el disco duro, es decir se crea la carpeta
/Isos/
y luego se van metiendo todas las isos que queremos con sus respectivos nombres y directorios. Una vez se tienen todas las isos allí se copia el directorio desde el disco al pendrive.

Ahora solo os quedara probar que todo funcione correctamente utilizando el USB para arrancar en alguna maquina o con algun emulador (WinSetupFromUSB trae el QEmu, que para probar los arranques de todo no va mal, PERO OJO que funcione en QEmu no quiere decir que luego en una maquina real funcione).
Notas finales
Todo esto lo he conseguido hacer mirando varios tutoriales, pero en especial me he basado en el siguiente : Install XP and Win7 onto a computer from one USB flash drive. Lo que en esa pagina utilizan su propio programa para crear pendrives que con windows xp a mi me dio muchos dolores de cabeza (sobre todo para cargar windows xp desde una iso e instalarlo).
He evitado mostrar el funcionamiento de Grub4dos ya que a decir verdad hay muchas cosas que ni yo entiendo, por lo que si no sois muy hábiles con estas cosas os recomendaría no tocar el "menu.lst". De todas formas he comentado el archivo menu.lst internamente para que os sea fácil editarlo si es que tenéis que llegar hasta tal punto.
menu.lst
, gracias a hunt3r25.Y esto es todo por hoy, espero que este documento os sirva de ayuda.