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.
-
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. -
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.
-
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/rootfsObservação: substitua
$esp_devicee$root_devicepelos dispositivos apropriados , por exemplo/dev/sdb2e/dev/sdb1. Os mountpoints/mnt/espe/mnt/rootfssã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 $deviceObserve que
$deviceé o dispositivo inteiro, por exemplo/dev/sdb, não uma partição. -
É isso, já estamos prontos, mas deixe-me tentar explicar algumas coisas.
O parâmetro
--target x86_64-efigarantirá que as imagens e módulos UEFI sejam instalados nos caminhos fornecidos.--removableinstalará a imagem UEFI no caminho codificado\EFI\BOOT\BOOT{arch}.EFIpara mídia removível, em vez de um caminho específico de distribuição. Seugrub.cfgin/boot/grub/deve funcionar com ambos os métodos de inicialização e uma nova pasta chamadax86_64-efideve existir agora ao lado dei386-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" $deviceInstalaçõ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:
- Instale o pacote
grub-efi-amd64-bin. - Crie uma partição com um sistema de arquivos FAT32 semelhante às instruções acima redimensionando a partição raiz e defina o
bootflag. - Monte as partições e execute o comando
grub-installacima 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:
-
Instale o pacote
grub-pc-bin. -
Crie uma partição semelhante às instruções acima redimensionando a partição raiz e defina o
bios_grubflag. Escolha no filesystem e deixe-o sem formatação. -
Edite o arquivo de configuração
/etc/default/grubcom direitos administrativos e adicioneGRUB_DEVICE=/dev/sdb6ao final. Substitua/dev/sdb6pelo 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 $deviceVocê pode querer remover ou comentar a linha em
/etc/default/grube 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:
-
Instale os pacotes
grub-efi-amd64-bin,hfsprogs,mactel-bootemactel-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. -
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.
-
Monte as partições:
mkdir -p /mnt/esp-mac mount $esp-mac_device /mnt/esp-mac mkdir -p /mnt/rootfs mount $root_device /mnt/rootfsObservação: escolhi
$esp-mac_devicee/mnt/esp-macpara evitar conflitos.Execute o comando
grub-installque inclui o parâmetro--removable:grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $devicePor 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_kernelPara 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 .