Estou lidando com um PC, uma caixa de escritório HP pronta para uso, alguns anos atrás. Eu o usava há algum tempo com diferentes sabores ou Linux, principalmente para computação sem cabeça. Em algum momento, tive que instalar o Windows 7 x86_64, então removi todos os discos rígidos anteriores da máquina, encontrei outro SSD, conectei-o, limpei-o e instalei o Windows 7 (todos os padrões) nele. Pelo que posso dizer, ele foi instalado no modo de inicialização UEFI (ou seja, o SSD possui uma pequena partição FAT32 com o sinalizador de inicialização definido).
O tempo passa, preciso rodar o Linux nesta máquina novamente, desligo o SSD e instalo o Linux Mint (ou seja, Ubuntu), versão mais recente de 2 semanas atrás, em uma unidade flash USB. O instalador do Mint envia mensagens de erro para mim, dizendo que há outro sistema operacional neste PC que funciona como no modo BIOS herdado e instalar o Mint no modo UEFI é uma má ideia. Lembre-se, o SSD foi desconectado. Ok ... Não consigo convencer o instalador do Mint a não travar com essa mensagem de erro, então particiono meu pen drive manualmente com o GParted. 512 MByte FAT32 com sinalizador BOOT definido mais uma partição de sistema ext4, tabela de partições GPT. Eu corro o instalador do Mint novamente e aponto para essas partições. Ele lança outro aviso para mim, mas não falha. O Mint é instalado (no modo UEFI) e funciona. As atualizações do kernel e do Grub funcionam.
O tempo passa, de novo, e preciso do Windows de novo. Eu ainda tenho meu SSD por perto, então eu conecto. A unidade flash USB também está presente, pensei que não importaria ... Eu inicializo o PC, o Windows funciona muito bem, eu desligo. Bem, agora eu quero começar o Mint. UEFI não o encontra. Período. Desliguei o SSD. Eu tentei todas as portas USB disponíveis. Liguei o Secure Boot (apenas por diversão) e desliguei novamente. Mudei para o modo somente inicialização do BIOS e voltei para UEFI / legado combinado. Mudei para o modo somente UEFI. Ele simplesmente não reconhece o Mint. Percorrer o menu de inicialização do UEFI não lista a unidade flash USB como uma opção de inicialização UEFI, apenas como uma opção Legacy BIOS (lembro que foi listada como uma opção UEFI quando instalei o Mint nela).
A partição de inicialização Mint UEFI está intocada, até onde eu sei (as datas de alteração correspondem à data da última atualização do Grub). O sinalizador BOOT está definido. Realmente não há nada de errado com isso, tanto quanto eu posso dizer. Meu único "erro" foi inicializar o Windows uma vez enquanto a unidade flash USB contendo o Mint estava conectada ao PC.
O que posso fazer para depurar e/ou resolver esse problema? O que estou possivelmente negligenciando?
EDIT (1): Isto é o que gdisk
me diz:
# gdisk -l /dev/sdc
GPT fdisk (gdisk) version 0.8.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sdc: 30464000 sectors, 14.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): ***
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 30463966
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1050623 512.0 MiB EF00
2 1050624 30461951 14.0 GiB 0700
O código EF00 para a partição 1 é irritante. Não deveria ser EE00?
Também postado nos fóruns do Mint .
Meu primeiro palpite seria que você perdeu a variável de inicialização NVRAM para Mint. Talvez o firmware tenha removido quando percebeu que se refere a um disco/SSD que não está mais presente no sistema.
Com UEFI, cada sistema operacional pode escrever sua própria especificação de bootloader na lista de itens inicializáveis do sistema. A especificação inclui basicamente o identificador GUID da partição do sistema EFI que contém o bootloader e o caminho do arquivo do bootloader. Para o Mint, o nome do caminho provavelmente seria algo como
\EFI\Mint\grubx64.efi
, pois usa uma versão UEFI do GRUB2.O truque é que você pode acessar essas variáveis de inicialização UEFI de dentro do sistema operacional... mas somente se esse sistema operacional for inicializado no modo UEFI. Quando o modo de inicialização legado é usado, os serviços de tempo de execução UEFI necessários para acessar as variáveis de inicialização serão desabilitados para tornar o sistema mais compatível com os sistemas legados.
Para mídia removível, há outra convenção UEFI: se não houver variáveis de inicialização UEFI aplicáveis ou se o sistema for instruído a inicializar no modo UEFI a partir de um disco que nunca viu antes, o firmware UEFI procurará uma partição com um sistema de arquivos FAT32 que conteria um arquivo chamado
\EFI\BOOT\BOOTx64.efi
(para hardware x86 de 64 bits; as arquiteturas ARM têm seus próprios nomes de arquivo de inicialização).Portanto, há duas maneiras de corrigir isso:
1.) Acesse o disco Mint usando qualquer sistema operacional capaz de entender uma tabela de partições GPT e um sistema de arquivos FAT32. Encontre o arquivo bootloader (
\EFI\Mint\grubx64.efi
ou similar) e copie-o para\EFI\BOOT\BOOTx64.efi
o mesmo disco. Se o diretório que contém o arquivo bootloader original contiver algo que se pareça com arquivos de configuração, copie-os também.Agora a UEFI deve reconhecer o disco como inicializável por UEFI, mesmo que as variáveis de inicialização NVRAM tenham desaparecido. (Isso pode evitar que o problema ocorra novamente se/quando você precisar trocar os SSDs novamente.)
2.) Inicialize o sistema no modo UEFI em qualquer tipo de Linux ao vivo ou ambiente de resgate. Localize o nome do arquivo de inicialização e use o
efibootmgr
comando para reescrever a variável de inicialização para Mint. O comando necessário seria algo como:Substituir
/dev/sdX
pelo nome real do dispositivo de disco:efibootmgr
procurará automaticamente o GUID correspondente. Observe as barras invertidas duplas no nome de caminho no estilo do Windows: isso ocorre porque a barra invertida é um caractere de escape especial para o shell do Linux. O último parâmetro é um rótulo que pode aparecer nos menus de seleção de boot e similares; você pode escrever qualquer texto curto que desejar.