Múltiples instaladores de Windows en una memoria USB

12

Recientemente tuve en mis manos una de esas unidades SanDisk Extreme de 64 GB y comencé a jugar con ella. Durante esta historia, tenga en cuenta que este es un modelo en el que removablese establece bit 0(lo que significa que Windows ve todas sus particiones de forma predeterminada; cada una se muestra como un solo disco en el explorador).

Metas:

  1. Para tener muchas distribuciones de arranque diferentes en un solo dispositivo
  2. Entre ellos debería estar el instalador de Windows 7 Y el instalador de Windows 8
  3. Solo una partición debe montarse automáticamente en Windows (y preferiblemente en otros sistemas operativos), la primera (almacenamiento para archivos). Esto es para evitar la alteración accidental de particiones de arranque o archivos en ellos. Debe ser del tipo NTFS.
  4. Opcionalmente, también me gustaría un linux totalmente persistente directamente arrancable (preferiblemente Ubuntu) en este dispositivo.
  5. Todas estas características deben estar disponibles en un solo menú que se muestra al momento de arrancar la máquina desde la memoria USB.

Desvaríos:

Ahora, todo esto se puede lograr con bastante facilidad mediante el uso de una combinación de SYSLINUX y GRUB (verás a continuación). Sin embargo, hay un problema: todos los elementos de arranque basados ​​en Linux (aquellos que usan el create ramdisk -> load kernel -> have funesquema: como PartEd Magic, Ubuntu Installer, etc.) parecen no tener ningún problema para ejecutarse desde su propia carpeta en una sola partición de arranque. Se llevan bien cuando simplemente los colocan en diferentes carpetas y les señalan entradas de menú SYSLINUX individuales (lo que sea que usen después de eso, podría ser otro SYSLINUX :)).

El problema (como siempre: D) está en los instaladores de Windows. Ellos (o debería decir bootmgr) se niegan a reconocer caminos relativos. Si coloca un instalador de Windows en una carpeta, por ejemplo, Win7para que parezca que /Win7/bootmgrel maldito busca \Boot\BCDcuando pasa el control (no \Win7\Boot\BCD, la ubicación en la que realmente está almacenado). Habiendo aprendido que, naturalmente, no puede poner más de un instalador de Windows en una sola partición (una sola estructura de directorio). Esto viola la META 2 .

Esquema actual:

Necesita 10 reputación para publicar imágenes :(. Aquí se visualiza el esquema.

Descripción:

  1. Partición NTFS normal. Haz lo que quieras con él, no afectará esos enlaces de arranque sensibles :)
  2. Partición de arranque FAT32. Aquí es donde se transfiere el control desde MBR. Este tiene que ser primario para poder transferir el control desde MBR. Contiene SYSLINUX principal, el que muestra el menú ( META 5 y META 1 ). Todas las particiones a continuación se extienden para levantar un máximo de 4 particiones primarias por disco
  3. Instalador de Windows 7. Esta partición contiene sector de arranque que apunta a GRUB en él que apunta a /bootmgr(no pregunte por qué tantos cargadores de arranque: es una configuración de prueba :)). Funciona bien, excepto la preocupación a continuación ( OBJETIVO 2 ).
  4. Instalador de Windows 8. Esta partición contiene bootsector que apunta a GRUB en él que apunta a /bootmgr. Funciona bien, excepto la preocupación a continuación ( OBJETIVO 2 ).
  5. Partición persistente de Linux en la que se instaló Ubuntu utilizando métodos normales (desde la misma memoria USB). Utiliza GRUB para administrar su menú de arranque. También tiene sector de arranque, por supuesto ( objetivo 4 ).
  6. Intercambio de Linux. Usado por Linux en la partición anterior, pero no está sujeto a ninguna restricción sobre quién puede usarlo.

Ahora todo parece correcto (y funciona) ... excepto el OBJETIVO 3 .

Problemas:

  1. Intenté usar hiddenflag para ocultar esas particiones de la vista de Windows y funcionó bien, incluso demasiado bien. También los ocultó de la vista del instalador de Windows. Cuando intenté instalar Windows desde una partición oculta, el instalador básicamente no encontró de dónde arrancó: O. Este es un problema crítico .
  2. He usado 2 particiones adicionales para alojar instaladores de Windows. Este no es realmente un gran esquema ya que cada vez que deseo cambiar algo y no encaja en estos, tengo que volver a particionar. Este es un problema NO CRÍTICO , puedo vivir con eso.

Mis pensamientos:

  1. Hay cosas por ahí como ISOLINUX y GRUB4DOS (aparecen cuando buscas sobre esto). Por lo que entendí, pueden ayudarme a montar el .iso de arranque del instalador de Windows . ¿Es eso cierto? Algunas páginas contienen una advertencia sobre imágenes montadas de esta manera que solo serán accesibles en la etapa de arranque del BIOS; cuando se inicie el instalador de Windows, no podrá ver la imagen montada. ¿Es eso cierto? ¿Me puede apuntar en la dirección correcta?
  2. Tal vez podría utilizar un poco de instalador personalizado para Windows (porque en esencia, lucho bootmgraquí 100% de las veces) o chrootel bootmgrde alguna manera para que se convierta en su sano juicio? ¿Se puede realizar esto? Creo que esto todavía me deja con el problema de que la partición aún está oculta y el instalador probablemente no la verá.
  3. Tal vez podría hackear el camino bootmgr, aunque esa es una suposición bastante audaz :)

Si hay algún consejo adicional al respecto, puede discutirlo aquí. Estoy abierto a cualquier sugerencia. Si hay algo que debe aclararse o se debe proporcionar información adicional, no dude en preguntar.

¡Muchas gracias!

Gear54rus
fuente
Instaladores de Windows WRT: ¿Por qué necesita múltiples cargadores de arranque? ¿Debería ser posible modificar sus entradas para poder iniciar ambos instaladores desde la misma partición usando la versión más nueva (es decir, la de Windows 8)?
Mario
¿Puedes dar el ejemplo de cómo hacerlo? Según tengo entendido, ¿se refiere a una configuración en la que utilizo un solo bootmgr pero varios instaladores? ¿Algo que pueda leer sobre esto?
Gear54rus
Nunca lo intenté yo mismo, pero básicamente el administrador de arranque en el DVD de configuración no es diferente de una instalación normal de HDD, por lo que debería poder usar herramientas como BCDEdit para crear una configuración de "arranque dual".
Mario
Ok, creo que encontré la solución parcial. Lo publicaré todo aquí cuando lo pruebe a fondo. Yo aún tengo otro problema: ¿Cómo hago que el instalador de Windows ver el pertition escondido
Gear54rus
Edité el archivo BCD. Lo que hice fue descomprimir el instalador .iso de Windows 7 en la carpeta / Win7 en una partición SYSLINUX. Luego saqué bootmgry bootde Win7 a la carpeta raíz y el /boot/BCDarchivo editado para reflejar los cambios en devicey osdevicenodos. Después de que el instalador arranca bien desde SYSLINUX a través de, chain.c32 fs ntldr=/bootmgrpero después de eso A required CD/DVD drive device driver is missingaparece el temido mensaje. Volver a insertar en otro puerto USB no ayuda. Cuando hago clic Browse, veo que ramdisk se montó bien y tiene todas las carpetas que necesita. Estoy perdido de nuevo :(
Gear54rus

Respuestas:

6

Después de un largo y exitoso viaje, he podido lograrlo todo.

He creado un tutorial sobre cómo realizar esto . Echale un vistazo.

Por solicitud, también publico todo a continuación:

Software:

En primer lugar: necesita una PC con Windows 7/8 y acceso administrativo (Vista puede funcionar, no estoy seguro). Aquí es donde se realizará el tutorial.

Para realizar todo lo que necesitaremos, este paquete de software también se refleja en GitHub (haga clic en Descargar ZIP ). [0] (de ahora en adelante, las referencias se marcarán con [] ). Para descargarlo, es posible que deba registrarse allí (no estoy seguro de por qué).

El paquete de software incluye:

  • YUMI por pendrivelinux.com . [1]
  • altmbr.bin del paquete SYSLINUX que permite iniciar la partición por número. [2]
  • Múltiples scripts y un ejecutable (incluido el programa vmount : versiones de 32 y 64 bits de erwan.l y suspensión de 32/64 bits de este hilo para que todo funcione en conjunto [3] .

Además, debe descargar lo siguiente:

  • WinSetupFromUSB (más tarde WSFUSB). Este es crucial para que este esquema funcione. Use la versión .exe si no tiene instalado 7zip . Este tutorial está escrito en el momento en que la versión 1.4 era la última. [4]

Opcionalmente (el software que recomiendo hará que el proceso sea más fácil y flexible, pero no es obligatorio)

  • Gparted live .iso para particionar y configurar banderas de partición (los análogos incluyen Parted Magic que decidió pagar recientemente o Partition Wizard, que es más pequeño, pero tenga en cuenta que no es Gparted y que debe tener algo de experiencia para operarlo). [5]
  • Notepad ++ es un editor de texto superior para Windows con muchos complementos. [6]

Y, por supuesto, algunos instaladores de Windows .iso, así como algunas distribuciones de Linux de arranque. Estos podrían ser cualquier cosa que admitan YUMI y SYSLINUX (podrá ver eso más adelante en este tutorial).

Cuando descargue todo esto, estará listo para los próximos pasos.

Concepto:

Aquí, se discutirá brevemente el esquema de operación.

El esquema discutido aquí es lo que uso para mi configuración. Ciertamente no es la única forma de lograr el mismo objetivo. Haré todo lo posible para tratar de explicarlo para que pueda personalizar la configuración según sus necesidades.

Este proceso parece describirse mejor en la imagen. (perdón por Paint, el diseño gráfico no es realmente mi lado fuerte):

Concepto

Eso es practicamente todo. Realmente no sé cómo explicarlo mejor.Estaré monitoreando este hilo, no dude en hacer preguntas en las respuestas.

Comportamiento:

  1. [Configuración de software]

    1. Extraiga el paquete de software [0] en alguna carpeta ( todo el software requerido se encuentra en la lista anterior, mire allí si aún no lo ha hecho ).
    2. Extraiga WinSetupFromUSB en la misma carpeta (para que esté al ladoYUMI.exe y todas las demás cosas). Haga doble clic en él y extráigalo en la misma carpeta.
    3. Ahora tome la carpeta con WinSetupFromUSB y arrástrela al drag_here.cmdarchivo. Así (la estructura de la carpeta también debería ser así): DND si hiciste todo bien, se mostrará una ventana que dice que el proceso se completó:
      WinSetupFromUSB was set up successfully, you can delete that folder.
      Now it's time to run 'start_admin.cmd'.
      Press any key to continue...
    4. Como dice, presione cualquier tecla para cerrar la ventana. No ejecute start_admin.cmd todavía. Vaya al siguiente paso para definir la estructura de partición.
  2. [ Fraccionamiento ]

    1. Decida la estructura de la partición: la suya debe incluir al menos 1 partición de almacenamiento y al menos 1 partición de arranque . La partición de arranque debe ser del tipo FAT32 ( FAT32 tiene una restricción del archivo más grande - 4GB y un volumen más grande - 32GB que es 32768MB . Si planea usar archivos o volúmenes más grandes, no puede usar NTFS pero puede probar exFAT como experimento: no lo intenté) y el almacenamiento puede ser cualquier cosa, pero recomiendo NTFS. El mío se ve así: la partición de Estructura almacenamiento es 32GB NTFS y la partición de arranque es 15GB FAT32 (no tiene una letra como G: porque tiene configurado el indicador oculto , aprenderá sobre eso más adelante).Si está utilizando un disco grande, podría ser una buena idea poner la partición de arranque primero ya que algunas BIOS tienen problemas para leer más allá de ciertos límites .
    2. La forma de administración de disco se describe aquí, pero puede usar cualquier otro software que desee para aplicar la estructura de partición (como Gparted [5] mencionado anteriormente o Bootice que se puede iniciar desde WinSetupFromUSB ). Abra la Administración de discos en Windows. Esto se puede hacer mediante la búsqueda en el menú de inicio (escriba Administración de discos ) o en el símbolo del sistema de Windows: diskmgmt .
    3. Aplicar la estructura de partición deseada. Haga clic derecho en cualquier partición para administrarla. Haga clic derecho en el espacio no asignado que queda después de la eliminación de la partición para crear una nueva partición. Elija siempre asignar letra de unidad y puede formatearla libremente en el mismo asistente: Creación de particiones
    4. Antes de salir de Administración de discos, anote el número de su partición de arranque y el número de su disco en el sistema. Así es como se ven en Administración de discos: Índices aquí, el número de disco es 2 y el número de partición de arranque es 1 .
    5. Cuando haya terminado de aplicar el esquema de partición, es hora de hacer que esta unidad sea realmente arrancable .
  3. [Agregar entorno de arranque base (YUMI)]

    1. Vaya a la carpeta desde el paso 1 . comienzoYUMI.exe .
    2. Marque la casilla Mostrar todas las unidades y seleccione su partición de arranque de la lista desplegable. Opcionalmente, puede optar por formatearlo también.
    3. Ahora es el momento de agregar algunas distribuciones basadas en Linux. He elegido Partition Wizard como ejemplo (puede elegir cualquier otra distribución y agregar más de una, el enlace al Partition Wizard se encuentra en la sección SOFTWARE ). Se recomienda agregar todas las distribuciones basadas en Linux en este punto, ya que será más difícil hacerlo más adelante después de que se finalice el disco .
    4. Seleccione Examinar y elija su .isoimagen. La pantalla se verá así: YUMI
    5. Haga clic en Crear y siga las instrucciones en pantalla. Cuando le pregunte si desea agregar más, puede elegir sí y repetir el procedimiento ( no elija la opción de formato al repetir el procedimiento, obviamente ) para agregar otra distribución.
    6. En este punto, el disco es de arranque. Desconecte el disco y vuelva a conectarlo (esto es necesario para que Windows detecte la partición como activa correctamente).
    7. Vaya a la carpeta del paso 1 y ejecútelo start_admin.cmd como administrador . Esto es crucial para su funcionamiento, haga clic derecho y seleccione Ejecutar como administrador : Ejecutar como administrador
    8. Le pedirá el número de disco y el número de partición de arranque (paso 2.4 ). Vuelva a abrir Administración de discos y encuentre esos números como lo hizo en el paso 2.4 . Especifique los números respectivos y presione Entrar .

    [ATENCIÓN] Nuevamente, no soy responsable de lo que sucede con sus discos (incluidos los que no se mencionan en este tutorial) si no especifica el disco correcto y los números de partición en este paso o en cualquier otro lugar.


    1. Al final, le preguntará si desea comprimir los ejecutables antes de colocarlos en su unidad USB. El tamaño rara vez es un problema hoy en día, así que recomiendo ingresar naquí (los efectos secundarios inesperados pueden aparecer más tarde si presiona y, solo si sabe lo que está haciendo).
  4. [Agregar instaladores basados ​​en Windows (WinSetupFromUSB)]

    1. De vuelta en la misma carpeta, vaya a la carpeta WSFUSB ( no a la carpeta WinSetupFromUSB ) y ejecute WinSetupFromUSB.exe apropiado para la arquitectura de su sistema.
    2. Elija su partición en el menú desplegable superior. Asegúrate de hacerlo con cuidado.
    3. Marque la casilla junto al instalador de Windows 7/8 y haga clic en el botón a la derecha para seleccionar su instalador de Windows .iso .
    4. Seleccione el cuadro de Opciones avanzadas . Asegúrese de no verificar e instalar grub4dos MBR e iniciar Q-Dir antes de la instalación .
    5. Vuelva a verificar su configuración y asegúrese de que se vean casi 100% idénticos (excepto el disco y la .isoruta) en este ejemplo: WSFUSB
    6. Opcionalmente, puede seleccionar nombres de menú personalizados para Vista / 7/8 / Server Source para poder ver nombres personalizados al seleccionar distribuciones de Windows en el momento del arranque.
    7. Cuando esté listo, presione el botón IR . Si seleccionó el cuadro del paso 4.7 , le preguntará los nombres. Después de eso, espere a que se complete la operación .
    8. Repita los pasos para cada distribución de Windows que desee agregar.
  5. [Finalización]

    1. En este punto tenemos 2 estructuras de arranque : una para Linux ( comienza desde MBR ) y otra para Windows (comienza desde bootmgr en su partición de arranque). Necesitamos vincularlos. Abra su partición de arranque en el explorador de Windows .
    2. Abrir el archivo <drive root>\multiboot\syslinux.cfg. Contiene información sobre el menú que se muestra al iniciar desde su unidad. Puede encontrar más información al respecto aquí: menu.c32 - sintaxis syslinux.cfg , comando chain.c32 chainloader . Por ahora, necesitamos hacer una entrada de menú que nos permita iniciar nuestros instaladores de Windows. Agregue las siguientes líneas en la parte inferior (o entre otras entradas de menú) para crear una nueva entrada de menú:
      MENU LABEL Windows Installers/Recoveries >>>
      MENU INDENT 1 
      KERNEL chain.c32
      APPEND fs ntldr=/bootmgr
      Preferiblemente, agregue una nueva línea vacía antes y después de este código . Ajuste la etiqueta de entrada del menú si lo desea. Guarde y cierre el archivo.
    3. [OPCIONAL DESDE AQUÍ] Abre WinSetupFromUSB nuevamente. Eliminaremos la entrada de menú obsoleta Volver al menú principal (Grub4dos) del menú de instaladores de Windows. Seleccione la herramienta Bootice .
    4. Vaya a BCD Edit . Seleccione otro archivo BCD y ubique el <drive root>\boot\bcdarchivo en su partición de arranque: Bootice
    5. Presione Modo fácil para editar el archivo BCD (datos de configuración de arranque): BCD NOTA: Si solo tiene 1 instalador, se cargará justo después de presionar la entrada del menú que agregó syslinux.cfg sin mostrar ningún menú . Además, es posible que desee presionar Establecer como predeterminado en cualquier elemento del menú que desee establecer como predeterminado . Haga clic en Cerrar y salga de la herramienta Bootice . Salga de WinSetupFromUSB también.
  6. [Limpieza (OPCIONAL)]

    1. Ahora necesitamos eliminar archivos obsoletos. Puede omitir esta sección si no le importa este tipo de cosas. Abra su partición de arranque en el explorador de Windows. Además, abra la primera partición en su unidad ( pueden ser una y la misma ).
    2. Los siguientes archivos y carpetas son necesarios para que este disco funcione ( si la carpeta está en la lista, se debe preservar todo su contenido ):
      \boot
      \efi
      \multiboot
      \WINSETUP
      \bootmgr
      
    3. Los siguientes archivos y carpetas se pueden eliminar de forma segura:
      .disk
      \default
      \grldr
      \menu.lst
      \plpbt.bin
      \shifthd.bat
      \usbdrive.tag
      
      Eliminarlos a voluntad . Además, Windows puede crear su estúpida información de volumen del sistema ; también puede eliminarla si tiene suerte. Además, este es el punto en el que puede cambiar el nombre de su partición de arranque de MULTIBOOT a cualquier otro nombre (prefiero simplemente Boot ). Puede hacerlo al igual que con cualquier carpeta a través del explorador de Windows.
  7. [Ocultar la partición de arranque (OPCIONAL)]

    1. Ahora es posible que desee ocultar su partición de arranque para evitar la alteración accidental de los archivos que contiene. Esto significa que no estará visible en la mayoría de los sistemas de forma predeterminada al insertar su disco, pero aún podrá arrancar desde él. Abra WinSetupFromUSB nuevamente.
    2. Abra la herramienta Bootice y seleccione la pestaña Disco físico si aún no está seleccionada. Elija su disco (con cuidado) en el menú desplegable.
    3. Haga clic en el botón Administrar piezas . Se mostrará la lista de particiones.
    4. Encuentra tu partición en la lista y presiona el botón Ocultar . Aparecerá una ventana que confirma el éxito . Todo se verá así: Esconde esto eso es todo . Su partición ya no se monta automáticamente (no tendrá una letra de unidad) en la mayoría de los sistemas y los archivos necesarios para iniciar la unidad no se alterarán accidentalmente .

Además, prefiero mantener el programa vmount ( [3] en la sección SOFTWARE ) para poder montar rápidamente la partición oculta en Windows si es necesario.

Eso es más o menos, si notas alguna idea errónea o error, no dudes en publicarlo aquí. Además, las preguntas y comentarios son bienvenidos.

Créditos

Wonko , erwan.l , ilko , Steve : miembros de la comunidad reboot.pro que me ayudaron enormemente en este hilo . Aquí es donde terminó el viaje :)

Bob, quien inicialmente insinuó sobre el controlador ImDisk en esta sala .

Mario que educó sobre los archivos BCD, su propósito y los medios para editarlos en esta pregunta original . Aquí es donde comenzó el viaje.

Ricky que arregló un error en la sangría.

Gear54rus
fuente
Sería genial si pudieras copiar tu solución aquí también.
Cristian Ciupitu
Bien hecho. Increíble guía detallada.
Devian