Visão geral
Criando inicialização somente com UEFI A mídia ao vivo USB é bastante simples. Basta copiar os arquivos para a unidade USB formatada em FAT32 . É isso!
Lembre-se de que, para uma instalação ou inicialização da mídia:
- Talvez ainda seja necessário explicitamente que informe seu computador para inicializar a mídia via UEFI .
- Uma tabela de partições GPT como nas pré-instalações do Windows 8 e posterior é recomendada.
- Use as últimas ISOs AMD64 (LTS), porque elas 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 parecido com o seguinte se 604A-00EA
for sua unidade USB e se já tiver p7zip
instalado:
$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/
Você estará pronto se tiver apenas uma partição nessa unidade USB, caso contrário será necessário sinalizar a partição como inicializável, por exemplo, via parted
:
# parted /dev/sdX set 1 boot on
Onde /dev/sdX
seria sua unidade USB e 1
o número da partição que deve ser usado para inicializar.
1.2. Exemplo via GUI
-
Monte o arquivo .iso e copie o conteúdo para o seu drive USB. Pressione Ctrl + H no Nautilus para exibir e copiar arquivos ocultos também.
-
Adicione o sinalizador de inicialização por meio de GParted .
1,3. Exemplo no Windows
- O mesmo que acima, basta copiar 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, você pressiona Windows / Super + R para abrir o menu de execução 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 podem inicializar a partir de imagens ISO diretamente por meio de um dispositivo de loopback. Dado que a imagem ISO é inicializável com UEFI, podemos configurar uma unidade USB contendo vários ISOs com diferentes sistemas operacionais sem criar uma bagunça na unidade USB.
Se você quiser inicializar o Windows, talvez queira consultar SARDU . Lembro-me de usá-lo com o Windows PE por volta de 2005 e parece ter sido atualizado para suportar unidades USB e UEFI, mas lembre-se de que essa ferramenta também oferece suporte à inicialização herdada.
O que precisamos?
- Conhecimento muito básico dos arquivos de configuração do GRUB.
- Conhecimento muito básico sobre inicialização via UEFI e GRUB, já que vamos gerar nossa própria imagem de bootloader GRUB com vários módulos incluídos.
- Uma imagem ISO inicializável com UEFI, uma unidade USB formatada em FAT e uma máquina que executa o 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 tradicional do Linux como no VirtualBox está bem.
2.1. Criando o binário
Em sua máquina ou VM Ubuntu, certifique-se de que 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 na sua distribuição.
O comando a seguir gerará a imagem do GRUB, neste caso, um binário EFI que todo computador com um firmware UEFI deve ser capaz de 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 o firmware UEFI padrão deve procurar \EFI\BOOT\
em um arquivo chamado boot{arch}.efi
, crie as pastas na unidade USB e copie a imagem que acabamos de criar para esse 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 o arquivo de configuração grub.cfg
que deve ser colocado no mesmo diretório que bootx64.efi
teria a seguinte aparência:
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 de acordo com sua preferência. Eu escolhi black/light-magenta
como ainda parece um pouco Ubuntu-ish, mas é facilmente distinguível quando o chainloading outras configurações. Você pode encontrar mais exemplos para outras distribuições na Wiki do Arch e lendo o Manual do GRUB vale muito a pena se você quiser ir além disso.
Voltando ao bloco de configuração, deve ficar óbvio que o ISO é referenciado como /efi/boot/ubuntu-14.04.2-desktop-amd64.iso
, então copie seu ISO para \EFI\BOOT\
e substitua ubuntu-14.04.2-desktop-amd64.iso
na configuração pelo nome 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 do Linux diretamente. Isso é possível porque a imagem do EFI GRUB inclui o módulo de loopback. (Um pouco de tentativa e erro estava envolvido em descobrir quais módulos são razoáveis para incluir. Você não deve ver nenhuma mensagem de erro, ainda não é perfeito.) Falando no kernel você pode adicionar parâmetros do kernel como 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 USB ao vivo use uma partição para persistência? Ou você pode criar um arquivo casper-rw
e colocá-lo na raiz do seu pen drive.
dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw
Eu não testei o que é o máximo absoluto, ele deve estar em algum lugar entre 4094 e 4096 MB. Use uma partição se você pretende usar mais espaço. Note que toda mudança no (root) é uma modificação no sistema de arquivos de sobreposição, mesmo excluindo arquivos.
2.4. Verificando a integridade
Você deve analisar as respostas às perguntas a seguir para verificar se o conteúdo do Live ISO na unidade USB está em bom estado:
- Como posso verificar a integridade de um CD baixado do Ubuntu?
- Uma verificação de integridade pode ser executada em um disco de inicialização USB?
2,5. Inicialização segura UEFI
O Secure Boot se tornará obrigatório em computadores Windows 10, sugiro que você dê uma olhada no PreLoader da Linux Foundation para adicionar a funcionalidade de inicialização segura a essa configuração. Aqui está alguns arte ASCII ilustrando menus do HashTool que o acompanha .
Parabéns, eu diria que você agora domina a inicialização do UEFI e não deveria mais ter medo.