Ainda é possível instalar o Ubuntu em um disco rígido externo com UEFI?

8

Parece que a instalação do Ubuntu em um disco rígido externo não é possível com o UEFI, onde, como com o MBR, não havia t uma grande diferença entre externo e interno. Isso é verdade ou ainda é possível?

É possível combinar os dois métodos de inicialização?

    
por LiveWireBT 11.12.2014 / 00:09

1 resposta

11

Na verdade, é possível .

Antes de continuar, estas instruções são destinadas a ESP (System EFI System Partitions) em branco e provavelmente substituirão os arquivos existentes ou não funcionarão como esperado. Pelo menos faça backups!

Adicionando partições necessárias para diferentes plataformas

Plataformas: PC legado, computador Windows baseado em UEFI, computador Apple

Adicione um ESP a uma instalação existente com o MBR

Você precisa seguir estas instruções de outra instalação ou mídia ativa.

  1. Instale o pacote grub-efi-amd64-bin . Isso só instalará os recursos necessários. Ele não mudará sua instalação de estilo MBR existente para o UEFI e deixará as coisas de cabeça para baixo.

  2. Reduza sua partição do Ubuntu em GParted para abrir espaço para um ESP. Os tamanhos recomendados para ESPs variam de 100 MB a 500 MB, mas os arquivos criados seguindo estas instruções aqui não exigirão mais de 2 a 5 megabytes.

      

    Nota: Não importa onde o seu ESP está localizado no disco e encolhendo sua partição do Ubuntu por alguns megabytes do fim deve ser rápido e seguro. Encolher no início não é seguro . Uma advertência, no entanto, o seu ESP deve ser uma partição primária e não ser parte de uma partição estendida ou um volume lógico, números de partição de 1 a 4 são bons, números acima indicam uma partição estendida em tabelas de partição MBR.

    Escolha o FAT32 como sistema de arquivos e defina o sinalizador de inicialização.

  3. Monte o ESP que acabou de criar e o sistema de arquivos raiz que você reduziu:

    mkdir -p /mnt/esp
    mount $esp_device /mnt/esp
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    
      

    Observação: substitua $esp_device e $root_device pelos dispositivos apropriados , por exemplo /dev/sdb2 e /dev/sdb1 . Os mountpoints /mnt/esp e /mnt/rootfs são apenas exemplos escolhidos para trabalhar com a parte restante desta resposta.

    Instale a imagem EFI do GRUB e um arquivo de configuração mínimo com:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    
      

    Observe que $device é o dispositivo inteiro, por exemplo /dev/sdb , não uma partição.

  4. É isso, já estamos prontos, mas deixe-me tentar explicar algumas coisas.

    O parâmetro --target x86_64-efi garantirá que as imagens e módulos UEFI sejam instalados nos caminhos fornecidos. --removable instalará a imagem UEFI no caminho codificado \EFI\BOOT\BOOT{arch}.EFI para mídia removível, em vez de um caminho específico de distribuição. Seu grub.cfg in /boot/grub/ deve funcionar com ambos os métodos de inicialização e uma nova pasta chamada x86_64-efi deve existir agora ao lado de i386-pc .

    Para completar, este é o comando para mídia não removível que grava e depende de entradas NVRAM na plataforma:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
    

    Instalações adequadas de UEFI incluem uma linha semelhante à abaixo em /etc/fstab , mas a configuração é funcional sem e a imagem UEFI (semelhante ao carregador de inicialização MBR) geralmente é gravada / atualizada apenas durante a instalação do SO.

    UUID=1234-567F /boot/efi vfat defaults 0 1
    

Adicionando um ESP ou GRUB-BBP a uma instalação com o GPT

Adicionar um ESP a uma instalação herdada em uma unidade particionada da GPT é muito semelhante ao acima:

  1. Instale o pacote grub-efi-amd64-bin .
  2. Crie uma partição com um sistema de arquivos FAT32 semelhante às instruções acima redimensionando a partição raiz e defina o boot flag.
  3. Monte as partições e execute o comando grub-install acima que inclui o parâmetro --removable .

Isso também funciona se você quiser apenas inicializar a instalação exisitng do UEFI em outro computador.

Criar uma partição inicializável do BIOS (BBP) para o GRUB é um pouco diferente:

  1. Instale o pacote grub-pc-bin .

  2. Crie uma partição semelhante às instruções acima redimensionando a partição raiz e defina o bios_grub flag. Escolha no filesystem e deixe-o sem formatação.

  3. Edite o arquivo de configuração /etc/default/grub com direitos administrativos e adicione GRUB_DEVICE=/dev/sdb6 ao final. Substitua /dev/sdb6 pelo nome real do dispositivo do seu BBP. Você pode usar o editor de linha de comando nano para manter a coisa simples.

    Instale a imagem do GRUB MBR no BBP com:

    grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
    

    Você pode querer remover ou comentar a linha em /etc/default/grub e adicioná-la à instalação real.

Bônus: adicione uma partição para Macs em uma instalação com GPT

Descobri que o Mac muito novo (Mac Mini A1347 EMC 2840) que eu estava testando poderia inicializar a partir de um ESP padrão FAT32, mesmo da MBR! De qualquer forma, aqui vamos nós:

  1. Instale os pacotes grub-efi-amd64-bin , hfsprogs , mactel-boot e mactel-boot-logo (opcional). Você precisa ativar os repositórios Universe ( Como habilitar o repositório "Universe" na linha de comando? ) e adicione o PPA de suporte do Mactel atual (veja Equipe da Comunidade de Suporte da Mactel para mais detalhes) para instalar todos eles.

  2. Crie uma partição com um sistema de arquivos HFS + semelhante às instruções acima redimensionando a partição raiz. Desta vez precisamos de mais alguns megabytes de espaço, então dobre o tamanho do ESP se você tivesse apenas 5 megabytes ou menos antes. Nenhum sinalizador é necessário.

  3. Monte as partições:

    mkdir -p /mnt/esp-mac
    mount $esp-mac_device /mnt/esp-mac
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    
      

    Observação: escolhi $esp-mac_device e /mnt/esp-mac para evitar conflitos.

    Execute o comando grub-install que inclui o parâmetro --removable :

    grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    Por fim, configure a partição da maneira que o Mac espera que seja:

    sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
    sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
    sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
    echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
    

    Para inicializar o Ubuntu a partir de mídia externa em um Mac, você só precisa pressionar a tecla ou Alt nos teclados Windows e selecione o disco certo.

Sobre sinalizadores de partição, códigos de tipo e GUIDs

Para ser o mais preciso possível, o sinalizador de inicialização não é importante para o GRUB; por padrão, o GRUB procura por UUIDs para encontrar o sistema de arquivos correto para inicializar. Definir o sinalizador de inicialização ou o sinalizador bios_grub no GParted geralmente define um tipo (MBR) ou GUID (GPT) para a partição.

O benefício de definir o tipo correto ou o GUID, além de ter uma configuração adequada, é que essas partições ficarão ocultas no gerenciador de arquivos. A maneira mais fácil de verificar e alterar tipos e GUIDs é através dos Discos ( gnome-disks ).

Como alternativa, você pode usar o parted ou o gdisk:

  • 0xef é o código de tipo para ESP em MBR para uso com fdisk
  • ef00 é o código de tipo abreviado para ESP no GPT para uso com o gdisk
  • ef02 é o código de tipo abreviado para BBP no GPT para uso com o gdisk

A Wikipédia tem uma lista grande de GUIDs para GPT .

Os equivalentes da linha de comando em parted de acordo com o manual são parted $device set partition esp on e parted $device set partition bios_grub on .

    
por LiveWireBT 11.12.2014 / 00:09