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/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. -
É 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. Seugrub.cfg
in/boot/grub/
deve funcionar com ambos os métodos de inicialização e uma nova pasta chamadax86_64-efi
deve 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" $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:
- 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
boot
flag. - 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:
-
Instale o pacote
grub-pc-bin
. -
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. -
Edite o arquivo de configuração
/etc/default/grub
com direitos administrativos e adicioneGRUB_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:
-
Instale os pacotes
grub-efi-amd64-bin
,hfsprogs
,mactel-boot
emactel-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/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
.