Cree un USB de arranque (UEFI GRUB) para la instalación de Ubuntu y Windows 7

12

Quiero crear un USB EFI de arranque para instalar Ubuntu y Windows 7 (tal vez con utilidades como PartedMagic ). Lo hice usando MultiSystem anteriormente. Sin embargo, estoy usando GPT y la instalación de Windows debe iniciarse en modo EFI para instalar en el sistema GPT. ¿Supongo que debo usar GRUB EFI en su lugar? Si no hay una aplicación como MultiSystem que cree un USB de arranque GRUB EFI, ¿cómo puedo crear una yo mismo?

Supongo que formatearé mi USB como GPT e instalaré GRUB EFI en él (¿cómo?). ¿Entonces necesito configurar GRUB EFI para cargar la instalación de Ubuntu y Windows 7 en EFI? ¿Cómo puedo hacer esto?

ACTUALIZAR

Esto es lo que probé

  • Crear 2 particiones en mi USB (GPT, 100 + MB FAT32 (/ dev / sdc1, establecer el indicador de arranque), el resto FAT32, / dev / sdc2, para instalaciones)
  • Extraiga las iso de Windows 7 y Ubuntu 11.10 en la partición del instalador, 2 carpetas diferentes
  • sudo elilo -b /dev/sdc1Intenté usar --autoconf --efiboot -v`

jiewmeng@JM:~$ sudo elilo -b /dev/sdc1 --autoconf --efiboot -v
elilo: backing up existing /etc/elilo.conf as /etc/elilo.conf-
Loaded efivars kernel module to enable use of efibootmgr
elilo: Checking filesystem on /dev/sdc1...
elilo: Mounting /dev/sdc1...
e    lilo: 44298KB needed, 78781KB free, 42192KB to reuse
elilo: Installing primary bootstrap /usr/lib/elilo/elilo.efi onto /dev/sdc1...
elilo: Installing /tmp/elilo.k8NWXX on /dev/sdc1...
elilo: Installing /vmlinuz on /dev/sdc1...
elilo: Installing /vmlinuz.old on /dev/sdc1...
elilo: Installing /initrd.img on /dev/sdc1...
elilo: Installing /initrd.img.old on /dev/sdc1...
elilo: Updating EFI boot-device variable...
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
elilo: An error occured while updating boot menu, we'll ignore it
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
elilo: Installation complete.

No sudo modprobe efivarsobtuve ningún resultado, pero obtuve el mismo error, creo que es porque no estoy arrancado en EFI Ubuntu.

A continuación, intentaré usar USB Startup Disk Creator para iniciar en un sistema en vivo en modo EFI para volver a intentarlo

ACTUALIZAR

Estoy tan perdido, ¿Windows está instalado primero la falla? Formateé e hice un USB de arranque para Ubuntu Alternativo con UNetBootIn, y también falló con el mismo error de ningún kernel disponible. Si hice un escritorio Ubuntu, obtendré que no puedo configurar fuentes aptas

El syslog para la instalación de escritorio de ubuntu http://pastebin.com/CdbUPXax

Creo que es mejor que no pierda el tiempo y vuelva a MBR pronto ... eso significa que tengo que hacer una copia de seguridad de todos mis datos primero ... y es por eso que lo estoy retrasando hasta el último recurso ... ¿alguna idea?

ACTUALIZAR

Intenté arrancar Ubuntu 11.10 Alternativo en modo BIOS (no EFI), instalado bien, excepto que no puedo instalar un cargador de arranque. Dice error fatal. Luego instalé GRUB arrancando el USB en modo de recuperación. Funciona pero no arranca. Da una pantalla en blanco en el arranque. Si intento ingresar al modo de recuperación (en HDD, donde está instalado ubuntu), el teclado parece fallar, aunque el mouse tiene luz.

Jiew Meng
fuente
¿Has investigado esto? unetbootin.sourceforge.net
Dustin L.
Easy2Boot puede ser lo que quieres.
SteveSi
Las respuestas son mejores cuando son más que un simple enlace o referencia a alguna solución potencial. Las respuestas que muestran cómo hacer algo o al menos describen el enfoque general son lo que buscamos aquí.
slm

Respuestas:

8

Estoy trabajando en una actualización de esta pregunta / respuesta.
Esto no funciona sin errores, pero mientras trabajaba con @jiewmeng descubrí que el objetivo era usar un USB para instalar Windows y Ubuntu en un disco duro, UEFI.
Me ha llevado un tiempo y he encontrado la solución, pero necesitamos limpiar la pregunta y la respuesta.
Tal vez la pregunta original también se pueda responder, pero como el objetivo era más en el lado de la instalación, el UEFI USB de arranque único parecía menos importante.
Actualmente estoy usando dos memorias USB, una para Windows y otra para Ubuntu.
Este es un WIP que se actualizará lo antes posible

He estado trabajando en esto durante unos días, una hora libre aquí y allá y finalmente tengo un solo USB, que arrancará y ofrecerá la instalación de Windows 7 y ubuntu.
Mi configuración es específica de 64 bits, podría intentar cambiar para acomodar un bit de 32 bits, pero hay muchas diferencias en los nombres de archivo. Haga un seguimiento si necesita 32 bits. Dicho eso ...

No puede instalar Windows 7 desde un USB con formato GPT.
Puede usar gdisk, o dividido, y crear un USB GPT, que se iniciará a través de UEFI.
Podrá configurar el administrador de arranque UEFI para cargar el instalador de Windows desde el USB, pero el instalador buscará los archivos y datos necesarios para realizar la instalación y no reconocerá el USB GPT, mientras que encontrará un USB MBR .

Sin embargo, esto es de poca importancia ya que UEFI mira el MBR / GPT y la partición EFI, vea la entrada de Wikipedia sobre el arranque UEFI

A pesar de utilizar un MBR estándar para el USB, se puede instalar a través de UEFI en un disco GPT.

Lo siguiente funcionó usando instalaciones de 64 bits, en 64 bits UEFI Asus Sabertooth.
El firmware de cada placa base es muy específico y cada firmware UEFI de la placa base busca el arranque UEFI de manera diferente. Es posible que tenga problemas con su placa base para encontrar datos de arranque, pero lo siguiente funciona en mi ASUS.

Así es como hice un USB de arranque con una copia instalable del DVD de Windows 7 de 64 bits y un ISO de Ubuntu (en este ejemplo, la iso de escritorio 11.10 de 64 bits).

Usando un USB 16G, que es todo lo que tenía a mano ...
mi USB instalado como / dev / sdc, cambia las referencias relevantes al dispositivo apropiado para tu USB.
Asegúrate de tener 7zip instalado.

fdisk /dev/sdc
create new MBR, 'o' command
create new partition, part 1, size 8G, type ef, set bootable, write
mkfs.vfat -F32 /dev/sdc1
mkdir /mnt/USB
mount /dev/sdc1 /mnt/USB
insert Windows 7 x64 DVD, again, mine appeared as /media/UDF\ Volume, you need to change references below
# Extract/Copy the entire Windows DVD to the USB
cp -r /media/UDF\ Volume/* /mnt/USB
# I don't know what effect the following rename has, I copied blindly from another webpage.
mv /mnt/USB/sources/ei.cfg /mnt/USB/sources/ei.cfg_
cd /mnt/USB/efi/microsoft/boot/
7z e /mnt/USB/sources/install.wim 1/Windows/Boot/EFI/bootmgfw.efi
cp -r /mnt/USB/efi/microsoft/boot /mnt/USB/efi/
mv /mnt/USB/efi/boot/bootmgfw.efi /mnt/USB/efi/boot/bootx64.efi
# At this point I booted the USB, and installed Windows 7 to a GPT SSD
# Upon reboot I noticed the Windows Boot loader in my UEFI boot list (actually it made itself 1st).
# so, here we have a standalone Windows7 UEFI installer that will function correctly (64bit ASUS, at least).
# Now, on to adding Ubuntu
cd /mnt/USB
7z x /path2iso/ubuntu-11.10-desktop-amd64.iso
# If 7z finds prexisting files with the same name, just allow always overwrite
# (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? A

# At this point I booted the USB, and installed Ubuntu x64 to a GPT SSD
# we have a standalone Ubuntu 64bit installer that install Ubuntu 64

# Now, on to add a boot manager that will allow us to select between Windows 7 and Ubuntu

# Get the target UUID of the USB partition, using either blkid or the following command
grub-probe --target=fs_uuid /mnt/USB/efi/Microsoft/Boot/bootmgfw.efi  
will print YOUR_UUID # Substitute into the following references to YOUR_UUID

# Append the following menuentry to /mnt/USB/boot/grub/x86_64-efi/grub.cfg

menuentry "Microsoft Windows x86_64 UEFI-GPT Setup" {
    insmod usbms  
    insmod part_gpt  
    insmod part_msdos  
    insmod fat  
    insmod search_fs_uuid  
    insmod chain  
    search --fs-uuid --no-floppy --set=root YOUR_UUID # <- CHANGE THIS TO YOUR UUID
    chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi  
}

¡Y voilá! Una memoria USB que funciona y que usa grub como administrador de arranque, lo que permite la instalación en discos GPT con instalación UEFI.

Si tiene algún error, no dude en enviarme un mensaje y lo investigaré.

bsd
fuente
Arranqué con éxito en el instalador de Windows en el punto " En este punto, arranqué el USB e instalé Windows 7 ". Sin embargo, cuando intento grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 4983-DA78obtengo un "argumento extra desconocido '4983-DA78'".
Jiew Meng
Ejecutar grub-probe proporciona el uuid que se utilizará. Luego se sustituirá en el siguiente texto.
bsd
el comando es solo grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi Sin argumentos. El valor '4983-DA78' es su UUID devuelto por grub-probe, para que lo use en el siguiente texto como YOUR_UUID
bsd
instalé bien Windows pero cuando probé ubuntu dice que no hay kernel, ¿alguna idea?
Jiew Meng
¿Instaló Ubuntu en una máquina que ya tenía Windows 7 instalado a través de la memoria USB UEFI?
bsd
3

Haré todo lo posible para responder la pregunta, espero que te lleve en la dirección correcta.

Como ya sabe, la instalación de Win7 x64 desde GPT solo es posible desde EFI. Peor aún, no puede usar ningún híbrido, ya que Win7 x64 trata cualquier disco híbrido como MBR heredado. Por lo tanto, debe volver a etiquetar / repartir su USB como GPT. Este tipo de configuración no es preferible para un USB, teniendo en cuenta los problemas de portabilidad. No estoy diciendo que no hagas uno, simplemente no esperaría que exista ninguna herramienta automatizada. De hecho, creo que puede usar el multisistema después de formatear la unidad. Si el Grub2 instalado automáticamente carece de soporte EFI / GPT, sobrescríbalo con la versión correcta de Grub2.

Por lo tanto, supongo que es posible que deba realizar parte de la instalación manualmente, que en su totalidad, está más allá del alcance de esta respuesta. Aunque debería poder ayudarte a comenzar ...

Con una versión actual de parted, vuelva a etiquetar su unidad con GPT. Suponiendo que el disco se encuentra en / dev / sdc,

 parted -s /dev/sdc mklabel gpt

Ahora debe particionar la unidad, preferiblemente un USB debe ser un solo primario. Siempre voy con FAT32, para mis USB de arranque.

parted -s /dev/sdc mkpart primary fat32 0 -1

parted mkpartno crea el FS, como lo mkpartfsharía. El partedDOC recomienda usar el soporte adecuado mkfs, en oposición al partedsoporte incorporado.

mkfs.vfat /dev/sdc1

Su unidad ya está lista para manejar los datos. En este punto, espero que pueda usar el multisistema para configurar su unidad.

Una vez que haya terminado con todo eso ... Necesitamos configurar Grub2, obviamente tenemos la intención de mantener la configuración. El multisistema puede tener la capacidad de arrancar desde EFI, pero tendrá que meterse con la configuración del módulo de todos modos.

La configuración Grub2 se encuentra en, boot/grub/grub.cfg. Debería ver algunos de los módulos comentados. He visto uno relacionado con GPT, pero no estoy seguro acerca de EFI. Buscaría y haría algunas pruebas. Considere leer algunos de los documentos de Grub2.

Si aún tiene algún problema, responda con preguntas de seguimiento.

JM Becker
fuente
2

Comience con la respuesta anterior de bdowning, luego continúe aquí para agregar Parted Magic.

Hay un par de maneras de hacerlo, pero la más simple es copiar el directorio pmagic del Parted Magic ISO a la raíz de su disco usb, y luego agregarle una entrada de menú:

menuentry "Parted Magic" --class gnu-linux --class gnu --class os {
  linux /pmagic/bzImage
  initrd /pmagic/initrd.img
}

(Es posible que deba leer el manual de grub2 para que funcione por completo; usé grub1 cuando lo hice el otro día, y los archivos de configuración son diferentes).

La desventaja aquí es que estás mezclando archivos para Windows, Ubuntu y ahora Parted Magic en un solo sistema de archivos. Peor aún, los hemos colocado directamente en la partición del sistema EFI. Funciona, pero, por supuesto, podría no funcionar para todas las combinaciones de sistemas operativos, por lo que lo que realmente deberíamos hacer es hacer una partición separada en el disco para cada sistema operativo. Hacer eso requiere decirle a grub que busque el sistema de archivos correcto, lo que puede hacer por guid. Cada sistema de archivos obtiene un guid único cuando se crea, por lo que tendrá que usar grub-probe (o herramientas similares) para encontrar ese guid. Luego lo pegas en un comando de búsqueda en tu configuración de grub:

menuentry "Parted Magic" --class gnu-linux --class gnu --class os {
    search --no-floppy --fs-uuid --set 8d2acb74-5216-4696-90a8-c76f92d5e4ee
    linux /pmagic/bzImage
    initrd /pmagic/initrd.img
}

Espero que esto ayude.

db48x
fuente
El arranque múltiple funcionará, pero en la respuesta de bdowning, cuando intento instalar Ubuntu, obtengo Kernel no disponible (alternativo) o no puedo configurar errores de apt (escritorio) (vea la publicación y comentarios de bdowning), ¿alguna idea de cómo se puede solucionar? También chateamos
Jiew Meng
2

En máquinas que no son UEFI, podemos usar GRUB2 para hacer que la memoria USB sea de arranque. Luego, podemos usar el comando 'ntldr' en el GRUB2 para iniciar Windows desde USB.

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

Vea la respuesta completa en mi blog Creación de un USB de arranque de Windows desde Linux

harish2704
fuente
1
Si bien este enlace puede responder la pregunta, es mejor incluir una descripción más detallada de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse casi inútiles si su enlace se cae.
G-Man dice 'Restablecer a Mónica' el
1

¿Por qué molestarse con GRUB2? Simplemente complica las cosas. Simplemente use el método EFI STUB para arrancar el kernel de Linux desde el ESP agregando un UEFI Shell al ESP.

fpmurphy
fuente
Bueno saber. En mi caso específico (viejo macbook pro) no funciona, porque Apple renombró esta basura patentada a "EFI" y dice que su gestor de arranque es un EFI. Pero, de hecho, es un gestor de arranque personalizado, indocumentado y con errores capaz de arrancar solo OSX y Windows. Por lo tanto, instalé LILO en una de las particiones y le miento a este gestor de arranque que es una ventana. Entonces funciona. Entonces, "EFI" inicia LILO en modo de emulación de BIOS, y LILO inicia el núcleo.
peterh - Restablece a Mónica el