A partição UEFI Mint de repente não é mais reconhecida pelo UEFI - depois de inicializar o Windows 7 uma vez

0

Este é estranho para mim ... parece um erro de principiante.

Estou lidando com um PC, alguns gabinetes de escritório da HP, alguns anos atrás. Eu já o usava há algum tempo com diferentes sabores ou Linux, principalmente para coisas de computação sem cabeça. Em algum momento, eu tive que instalar o Windows 7 x86_64, então eu removi todos os discos rígidos anteriores da máquina, encontrei outro SSD, liguei, limpei em branco 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 tem uma pequena partição FAT32 com sinalizador de inicialização definido).

O tempo passa, preciso rodar o Linux nesta máquina novamente, plugar o SSD e instalar o Linux Mint (ou seja, o Ubuntu), a versão mais recente de 2 semanas atrás, em uma unidade flash USB. O instalador do Mint lança mensagens de erro para mim, dizendo que há outro sistema operacional neste PC que é executado como no modo legacy do BIOS e que instalar o Mint no modo UEFI é uma má ideia. Lembre-se, o SSD foi conectado. Ok ... Eu não posso convencer o instalador do Mint a não travar essa mensagem de erro, então participo meu pen drive manualmente com o GParted. 512 MByte FAT32 com sinalizador BOOT definido mais uma partição do sistema ext4, tabela de partições GPT. Eu corro o instalador Mint novamente e aponto para essas partições. Ele lança outro aviso para mim, mas não falha. Mint instala (no modo UEFI) e funciona. As atualizações do kernel e do Grub funcionam.

O tempo passa novamente e preciso do Windows novamente. Eu ainda tenho meu SSD por perto, então eu o conecto. A unidade flash USB também está presente, eu pensei que não importaria ... Eu inicializo o PC, o Windows funciona muito bem, eu o fecho. Bem, agora eu quero começar o Mint. O UEFI não o encontra. Período. Eu desconectei 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 de inicialização do BIOS e de volta para o UEFI / legacy combined. Eu mudei para o modo somente UEFI. Só não vai reconhecer o Mint. Percorrer o menu de inicialização da 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 ela foi listada como uma opção UEFI quando instalei o Mint nela).

A partição de inicialização do Mint UEFI está intacta, até onde eu sei (as datas de alteração coincidem com a data da última atualização do Grub). O sinalizador BOOT está definido. Realmente não há nada de errado com isso, até onde eu sei. Meu único "erro" foi inicializar o Windows uma vez enquanto a unidade flash USB contendo Mint foi conectada ao PC.

O que posso fazer para depurar e / ou resolver esse problema? O que eu possivelmente estou negligenciando?

EDIT (1): Isto é o que o 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 foram publicados nos fóruns do Mint .

    
por s-m-e 30.01.2018 / 14:52

1 resposta

2

Meu primeiro palpite é que você perdeu a variável de inicialização NVRAM para o Mint. Talvez o firmware tenha removido quando percebeu que se refere a um disco / SSD que não está mais presente no sistema.

Com o UEFI, cada sistema operacional pode gravar sua própria especificação de carregador de inicialização 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 carregador de inicialização e o nome do caminho do arquivo do carregador de inicialização. Para o Mint, o nome do caminho provavelmente seria algo como \EFI\Mint\grubx64.efi , já que ele usa uma versão UEFI do GRUB2.

O truque é que você pode acessar essas variáveis de inicialização UEFI dentro do sistema operacional ... mas somente se esse SO for inicializado no modo UEFI. Quando o modo de inicialização herdado é usado, os serviços de tempo de execução da UEFI necessários para acessar as variáveis de inicialização serão desativados para tornar o sistema mais próximo dos sistemas herdados.

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 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 possuem seus próprios nomes de arquivo de inicialização.)

Existem duas maneiras de você corrigir isso:

1.) Acesse o disco Mint usando qualquer sistema operacional que seja capaz de entender uma tabela de partição GPT e um sistema de arquivos FAT32. Encontre o arquivo do carregador de inicialização ( \EFI\Mint\grubx64.efi ou similar) e copie-o para \EFI\BOOT\BOOTx64.efi no mesmo disco. Se o diretório que contém o arquivo do gerenciador de inicialização original contiver algo parecido 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 da NVRAM tenham sido eliminadas. (Isso pode impedir que o problema ocorra novamente se / quando você precisar trocar SSDs novamente.)

2.) Inicialize o sistema no modo UEFI em qualquer ambiente live-Linux ou de recuperação. Localize o nome do arquivo de inicialização e use o comando efibootmgr para reescrever a variável de inicialização do Mint. O comando necessário seria algo como:

# efibootmgr -c -d /dev/sdX -l \EFI\Mint\grubx64.efi -L "Linux Mint"

Substitua /dev/sdX pelo nome do dispositivo de disco real: efibootmgr procurará automaticamente o GUID correspondente. Observe as barras duplas invertidas no nome do caminho no estilo do Windows: isso é 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 inicialização e similares; você pode escrever qualquer texto curto que quiser.

    
por 30.01.2018 / 15:42