Crie um USB inicializável (UEFI GRUB) para instalar o Ubuntu e o Windows 7

12

Eu quero criar um USB EFI inicializável para instalar o Ubuntu & Windows 7 (talvez com utilitários como PartedMagic ). Eu fiz isso usando MultiSystem anteriormente. No entanto, estou usando o GPT e o Windows precisa ser instalado no modo EFI para instalar no sistema GPT. Suponho que devo usar o GRUB EFI em vez disso? Se não houver um aplicativo como o MultiSystem que cria um USB inicializável do GRUB EFI, como posso criar um eu mesmo?

Suponho que vou formatar meu USB como GPT e instalar o GRUB EFI nele (como?). Então eu preciso configurar o GRUB EFI para carregar o Ubuntu & Windows 7 instalar no EFI? Como posso fazer isso?

UPDATE

Veja o que tentei

  • Crie 2 partições no meu USB (GPT, 100 + MB FAT32 (/ dev / sdc1, sinalizador de inicialização definido), O resto FAT32, / dev / sdc2, para instalações)
  • Extraia o Windows 7 & O Ubuntu 11.10 iso está na partição Installer, 2 pastas diferentes
  • Tentei usar sudo elilo -b /dev/sdc1 --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.

Será que sudo modprobe efivars não obteve resultado, mas recebeu o mesmo erro, acho que é porque não iniciei no EFI Ubuntu?

Em seguida, tentarei usar o USB Startup Disk Creator para inicializar em um sistema ativo no modo EFI para tentar novamente

UPDATE

Estou tão perdido, o Windows está instalado primeiro a falha? Eu formatei & fez um USB inicializável para o Ubuntu Alternate com UNetBootIn, e também falhou com o mesmo erro de não haver kernel disponível. Se eu fiz um Ubuntu Desktop eu vou conseguir não pode configurar fontes apt

OsyslogparadesktopdoUbuntu link

Eu sinto que é melhor não perder tempo e reverter para o MBR em breve ... isso significa que eu tenho que fazer backup de todos os meus dados primeiro ... e é por isso que estou atrasando isso até o último recurso ... qualquer idéia ?

UPDATE

Eu tentei inicializar o Ubuntu 11.10 Alternar no modo BIOS (não-EFI), instalado bem, exceto que não posso instalar um gerenciador de inicialização. Diz erro fatal. Eu instalei o GRUB inicializando o USB no modo de recuperação. Funciona, mas não inicializa. Dá uma tela em branco na inicialização. Se eu tentar entrar no modo de recuperação (no HDD, onde o Ubuntu é instalado), o teclado parece falhar, embora o mouse tenha luz.

    
por Jiew Meng 01.01.2012 / 03:13

5 respostas

7

Estou trabalhando em uma atualização para esta pergunta / resposta.
Isso não funciona sem erros, mas ao trabalhar com a @jiewmeng descobri que o objetivo era usar um USB para instalar o Windows e o Ubuntu em um disco rígido, o UEFI.
Demorou um pouco e encontrei a solução, mas precisamos limpar a pergunta e responder.
Talvez a pergunta original também possa ser respondida, mas como o objetivo era mais do lado da instalação, o UEFI USB de inicialização única parecia menos importante. Atualmente, estou usando dois pen drives para o Windows, um para o Ubuntu.
Este é um WIP a ser atualizado o mais rápido possível

Eu tenho trabalhado nisso por alguns dias, horas extras aqui e ali e finalmente tenho um único USB, que irá inicializar e oferecer a instalação do windows 7 e do ubuntu. Minha configuração é específica de 64 bits, você pode tentar alterar para acomodar um intall de 32 bits, mas existem muitas diferenças nos nomes de arquivos. Por favor, siga se você precisar de 32 bits. Dito isto ...

Você não pode instalar o Windows 7 a partir de um USB com formato GPT.
Você pode usar o gdisk, ou o parted, e criar um GPT USB, que será inicializado via UEFI.
Você poderá configurar o gerenciador de inicialização UEFI para carregar o instalador do Windows a partir do USB, mas o instalador procurará por arquivos e dados necessários para executar a instalação e não reconhecerá o GPT USB, enquanto ele encontrará um MBR USB .

No entanto, isso é de pouca importância, pois o UEFI analisa a MBR / GPT e a partição EFI, consulte a entrada da Wikipedia sobre Inicialização do UEFI

Apesar de usar um MBR padrão para o USB, é possível instalar via UEFI em um disco GPT.

O seguinte trabalhou usando instalações de 64 bits, em 64 bits UEFI Asus Sabertooth.
O firmware em cada placa-mãe é muito específico e cada firmware UEFI da placa-mãe procura inicialização UEFI de forma diferente. Você pode ter problemas com sua placa-mãe encontrar dados de inicialização, mas o seguinte funciona no meu ASUS.

Veja como eu fiz um USB inicializável com uma cópia instalável do DVD do Windows 7 de 64 bits e um ISO do Ubuntu (neste exemplo, a iso de desktop de 11.10 e 64 bits).

Usando um 16G USB, que é tudo que eu tinha em mãos ...
meu USB instalado como / dev / sdc, altere as referências relevantes para o dispositivo apropriado para o seu USB.
Certifique-se de ter 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  
}

E voila! Um stick USB funcional que usa o grub como gerenciador de inicialização, permitindo a instalação em discos GPT com a instalação do UEFI.

Se você tiver um erro, não hesite em me enviar uma mensagem, e eu vou investigar.

    
por 11.01.2012 / 16:17
3

Eu farei o meu melhor para responder a pergunta, espero que você chegue na direção certa.

Como você já sabe, a instalação do Win7 x64 da GPT só é possível na EFI. Ainda pior o seu impedido de usar qualquer híbrido, como Win7 x64 trata qualquer disco híbrido como legado MBR. Então você precisa re-marcar / reparticionar seu USB como GPT. Este tipo de configuração não é preferível para um USB, considerando as preocupações de portabilidade. Eu não estou dizendo não faça um, eu apenas não esperaria nenhuma ferramenta automatizada existir. Eu realmente acredito que você pode usar o multisystem, depois de formatar sua unidade. Se o Grub2 instalado automaticamente não tiver suporte a EFI / GPT, substitua-o pela versão correta do Grub2.

Então, eu suponho que você pode ter que fazer algumas das instalações manualmente, o que, na sua totalidade, está além do escopo desta resposta. Embora eu deva ser capaz de começar ...

Usando uma versão atual de parted , renomeie sua unidade com a GPT. Assumindo que o disco está localizado em / dev / sdc,

 parted -s /dev/sdc mklabel gpt

Agora você deve particionar a unidade, de preferência, um USB deve ser um único primário. Eu sempre uso o FAT32, para os meus USBs inicializáveis.

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

parted mkpart não cria o FS, como mkpartfs . O parted DOC recomenda usar o mkfs adequado, em oposição ao% interno de parted .

mkfs.vfat /dev/sdc1

A sua unidade está agora pronta para lidar com os dados. Neste ponto, espero que você possa usar o multissistema para configurar sua unidade.

Uma vez que você terminou com tudo isso ... Precisamos configurar o Grub2, obviamente pretendemos manter a configuração. O Multisystem pode ter a capacidade de inicializar a partir do EFI, mas você terá que mexer com a configuração do módulo, independentemente.

A configuração do Grub2 está localizada em boot/grub/grub.cfg . Você deve ver alguns dos módulos comentados. Eu vi um relacionado ao GPT, mas não tenho certeza sobre o EFI. Eu olharia e faria alguns testes, considere ler alguns dos documentos do Grub2.

Se ainda tiver algum problema, responda com perguntas de acompanhamento.

    
por 08.01.2012 / 04:40
2

Comece com a resposta do bdowning acima, depois continue aqui para adicionar a Parted Magic.

Existem algumas maneiras de fazer isso, mas o mais simples é copiar o diretório pmagic do ISO do Parted Magic para a raiz do seu disco usb e adicionar uma entrada de menu para ele:

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

(Você pode precisar ler o manual do grub2 para que ele funcione completamente; usei o grub1 quando fiz isso no outro dia, e os arquivos de configuração são diferentes.)

O ponto negativo aqui é que você está mixando arquivos para Windows, Ubuntu e agora Parted Magic em um único sistema de arquivos. Pior, nós os colocamos diretamente na partição do sistema EFI. Ele funciona, mas é claro que pode não funcionar para todas as combinações de sistemas operacionais, então o que realmente precisamos fazer é criar uma partição separada na unidade para cada sistema operacional. Fazer isso requer que o grub seja informado para procurar o sistema de arquivos correto, o que pode ser feito pelo guid. Cada sistema de arquivos obtém um guia único quando é criado, então você terá que usar o grub-probe (ou ferramentas similares) para encontrar esse guia. Você então colá-lo em um comando de busca em sua configuração do 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 isso ajude.

    
por 22.01.2012 / 03:22
2

Em máquinas não-UEFI, podemos usar o GRUB2 para tornar o dispositivo USB inicializável. Então, podemos usar o comando 'ntldr' no GRUB2 para inicializar o Windows a partir do USB.

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

Veja a resposta completa no meu blog Criando um windows USB inicializável a partir do Linux

    
por 10.04.2015 / 20:37
1

Por que se preocupar com o GRUB2? Isso só complica as coisas. Basta usar o método EFI STUB para inicializar o kernel Linux do ESP, adicionando um Shell UEFI ao ESP.

    
por 07.11.2012 / 15:29