Como criar mídia ao vivo USB inicializável somente com UEFI?

86

Ter mídia ao vivo que pode inicializar nos dois sentidos pode ser um problema ao instalar o Ubuntu nos computadores Windows 8 disponíveis atualmente.

Em outras palavras, a principal vantagem da criação de mídia ao vivo USB inicializável somente UEFI é: Você sabe que ele foi inicializado e instalado por UEFI.

Já que a Valve já está usando o instalador USB inicializando somente UEFI com o Steam baseado no Debian e UNetbootin - a melhor alternativa ao Criador de disco de inicialização do Ubuntu - não é compatível com UEFI e, portanto, enganoso, acho que devemos ter um tópico separado para criar mídia ao vivo USB inicializável somente com UEFI.

    
por LiveWireBT 26.12.2013 / 11:03

3 respostas

107

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:

Índice

  • Copiar arquivos do método ISO
    1. Exemplo via terminal
    2. Exemplo via GUI
    3. Exemplo no Windows
  • O método de loopback ISO (avançado)
    1. Criando o binário
    2. Criando o arquivo de configuração
    3. Adicionando persistência
    4. Verificando a integridade
    5. 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

  1. 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.

  2. Adicione o sinalizador de inicialização por meio de GParted .

1,3. Exemplo no Windows

  1. O mesmo que acima, basta copiar os arquivos.
  2. 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:

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.

    
por LiveWireBT 26.12.2013 / 11:03
2

Extrair do arquivo ISO para FAT32

Extrair o conteúdo de um arquivo ISO da área de trabalho do Ubuntu de 64 bits para uma partição com um sistema de arquivos FAT32 e um sinalizador de inicialização fará o trabalho: criar uma unidade ativa, que inicializa apenas no modo UEFI. É chamado "Copiar arquivos do método ISO" aqui (na resposta aceita).

Teste se está sendo executado no modo UEFI ou BIOS

Mas é fácil testar em um sistema Ubuntu em execução (tanto ao vivo quanto instalado), se ele foi inicializado no modo UEFI ou BIOS. Execute esta linha de comando,

test -d /sys/firmware/efi && echo efi || echo bios

Isso facilita o uso de sistemas ativos que podem ser usados em ambos os modos de inicialização, o que também pode ser uma vantagem.

Veja também os links a seguir para uma explicação mais detalhada e descrição do método,

help.ubuntu.com/community/Installation/iso2usb

help.ubuntu.com/community/Installation/iso2usb/diy

    
por sudodus 19.09.2017 / 22:21
1

Usando dd trabalhado para mim, por algum motivo, a versão da GUI não funcionou. Então, primeiro, você pode querer monitorar o progresso do dd , outra opção é usar a opção SIGUSR1 para acionar dd para relatar seu progresso periodicamente, mas isso é mais complicado que pv .

Então:

sudo dd if=path/to/image/file | pv | sudo dd of=/dev/device_you_want_to_use

( /dev/device_you_want_to_use normalmente será /dev/sdb , mas verifique com df !)

    
por sup 27.07.2014 / 14:43