visão global
A criação de mídia ao vivo USB inicializável apenas por UEFI é bastante simples. Basta copiar os arquivos para a sua unidade USB formatada em FAT32 . É isso aí!
Lembre-se de que, para uma instalação ou inicialização da mídia:
- Você ainda pode precisar dizer explicitamente ao seu computador para inicializar a mídia via UEFI .
- Uma tabela de partição GPT, como nas pré-instalações do Windows 8 e posterior, é recomendada.
- Não se esqueça de criar uma partição depois de criar a tabela de partições.
- Use os ISOs AMD64 (LTS) mais recentes , porque eles definitivamente contêm carregadores de inicialização UEFI.
Índice
- Copiar arquivos do método ISO
- Exemplo via terminal
- Exemplo via GUI
- Exemplo no Windows
- O método de loopback ISO (avançado)
- Criando o binário
- Criando o arquivo de configuração
- Adicionando persistência
- Verificando a integridade
- Inicialização segura UEFI
1. Copie arquivos do método ISO
Esse método também funciona para outras mídias de instalação que contêm carregadores EFI, como o Windows, por exemplo.
1.1 Exemplo via terminal
Você pode fazer algo como o seguinte, se 604A-00EA
for a sua unidade USB e já tiver p7zip
instalado:
$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/
Você está pronto se tiver apenas uma partição nesta unidade USB, caso contrário, precisará sinalizar a partição como inicializável, por exemplo, via parted
:
# parted /dev/sdX set 1 boot on
Onde /dev/sdX
estaria sua unidade USB e 1
o número da partição que deve ser usada para inicializar.
1.2 Exemplo via GUI
Monte o arquivo .iso e copie o conteúdo para a sua unidade USB. Imprensa Ctrl+ Hno Nautilus para exibir e copiar arquivos ocultos também.
Adicione o sinalizador de inicialização via GParted .
1.3 Exemplo no Windows
- O mesmo que acima, apenas copie os arquivos.
- Pressione Windows/Super+ X, vá para Gerenciamento de disco e verifique se a partição está marcada como ativa. Nas versões do Windows anteriores ao Windows 8, pressione Windows/Super+ Rpara abrir o menu executar e abrir
diskmgmt.msc
, que abriria o Gerenciamento de Disco.
2. O método de loopback ISO (avançado)
Em vez de extrair conteúdo de uma imagem ISO, o GRUB e o GRUB2 foram capazes de inicializar a partir de imagens ISO diretamente através de um dispositivo de loopback. Como a imagem ISO é inicializável por UEFI, podemos configurar uma unidade USB contendo vários ISOs com diferentes sistemas operacionais sem criar uma bagunça na unidade USB.
Se você também deseja inicializar o Windows, consulte o SARDU . Lembro de usá-lo no Windows PE por volta de 2005 e parece ter sido atualizado para oferecer suporte a unidades USB e UEFI, mas lembre-se de que essa ferramenta também oferece suporte à inicialização herdada.
O que nós precisamos?
- Conhecimento muito básico dos arquivos de configuração do GRUB.
- Conhecimento muito básico de inicialização UEFI e GRUB, pois vamos gerar nossa própria imagem de carregador de inicialização GRUB com vários módulos incluídos.
- Uma imagem ISO inicializável UEFI, uma unidade USB formatada em FAT e uma máquina que executa Linux.
- Não, não precisamos de uma instalação UEFI do Linux (que pode ser uma situação de galinha e ovo), uma VM Linux tradicional como a do VirtualBox é adequada.
2.1 Criando o binário
Na sua máquina ou VM Ubuntu, verifique se o pacote grub-efi-amd64-bin está instalado (o grub-efi-ia32-bin também está disponível para arquiteturas Intel de 32 bits em versões mais recentes). O pacote pode ter um nome diferente em outra distribuição. Você pode comparar a lista de arquivos do pacote para encontrar o pacote certo em sua distribuição.
O comando a seguir gerará a imagem do GRUB, nesse caso, um binário EFI que todo computador com firmware UEFI deve executar:
grub-mkimage -o bootx64.efi -p /efi/boot -O x86_64-efi \
fat iso9660 part_gpt part_msdos \
normal boot linux configfile loopback chain \
efifwsetup efi_gop efi_uga \
ls search search_label search_fs_uuid search_fs_file \
gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
exfat ext2 ntfs btrfs hfsplus udf
Todo firmware UEFI padrão deve procurar \EFI\BOOT\
um arquivo chamado boot{arch}.efi
, então crie as pastas na unidade USB e copie a imagem que acabamos de criar para este local. Outras arquiteturas, em vez de x64, são possíveis, mas vamos simplificar com x64 / amd64.
2.2 Criando o arquivo de configuração
Um exemplo muito básico para um grub.cfg
arquivo de configuração que deve ser colocado no mesmo diretório da bootx64.efi
seguinte maneira:
set timeout=3
set color_highlight=black/light-magenta
menuentry 'Boot Ubuntu 14.04.2 LTS from ISO' {
set isofile="/efi/boot/ubuntu-14.04.2-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash persistent --
initrd (loop)/casper/initrd.lz
}
submenu 'Useful snippets' {
menuentry 'Ubuntu' {
chainloader /efi/ubuntu/grubx64.efi
}
menuentry 'Windows' {
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Firmware Setup' {
fwsetup
}
}
O importante é o bloco de configuração com o título Boot Ubuntu 14.04.2 LTS from ISO
. Você pode alterar a cor e o tempo limite conforme sua preferência. Eu escolhi black/light-magenta
como ele ainda parece um pouco Ubuntu-ish, mas é facilmente distinguível ao carregar em cadeia outras configurações. Você pode encontrar mais exemplos de outras distribuições no Arch Wiki e ler o manual do GRUB realmente vale a pena, se você quiser ir além disso.
Voltando ao bloco de configuração, deve ser óbvio que o ISO é referenciado como /efi/boot/ubuntu-14.04.2-desktop-amd64.iso
, portanto, copie-o \EFI\BOOT\
e substitua-o ubuntu-14.04.2-desktop-amd64.iso
na configuração pelo nome do arquivo real do seu ISO.
loopback loop $isofile
é a linha que carregará nosso arquivo ISO em um dispositivo de loopback a partir do qual podemos inicializar o kernel Linux diretamente. Isso é possível porque nossa imagem do EFI GRUB inclui o módulo de loopback. (Houve um pouco de tentativa e erro para descobrir quais módulos são razoáveis para incluir. Você não deve receber nenhuma mensagem de erro, mas ainda não é perfeito.) Falando no kernel, você pode adicionar parâmetros do kernel toram
, parâmetros para diferentes idiomas. (exemplo locale=de_DE bootkbd=de
) e como no exemplo:persistent
2.3 Adicionando persistência
Você pode adicionar uma partição conforme descrito em: Como faço para que um live-USB use uma partição para persistência? Ou você pode criar um casper-rw
arquivo e colocá-lo na raiz da sua unidade USB.
dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw
Não testei qual é o máximo absoluto, ele deve estar entre 4094 e 4096 MB. Use uma partição se você pretende usar mais espaço. Observe que todas as alterações no (root) são uma modificação no sistema de arquivos de sobreposição, inclusive excluindo arquivos.
2.4 Verificando a integridade
Você deve procurar respostas para as seguintes perguntas para verificar se o conteúdo do Live ISO na unidade USB está em boas condições:
2.5 Inicialização segura UEFI
A Inicialização Segura se tornará obrigatória nas máquinas Windows 10. Sugiro que você dê uma olhada no PreLoader da Linux Foundation para adicionar a funcionalidade Inicialização Segura a essa configuração. Aqui estão algumas artes ASCII que ilustram os menus do HashTool que o acompanha .
Parabéns, eu diria que agora você dominou a inicialização da UEFI e não deve mais ter medo.