Tenho uma instalação do Arch Linux feita via archinstall
. Ele está configurado para funcionar com inicialização segura (eu segui o guia "Unified Extensible Firmware Interface/Secure Boot" no Arch Wiki usando o método "3.1.3 Assisted process with sbctl" para configurar isso).
É assim que minha configuração de disco se parece:
├─ nvme0n1 <-- This is my Windows drive
│ ├─ nvme0n1p1 (16M)
│ └─ nvme0n1p2 (1.8T)
└─ nvme1n1 <-- This is my Linux drive
├─ nvme1n1p1 (512M) <-- /boot EFI system
├─ nvme1n1p2 (20G) <-- /
└─ nvme1n1p3 (911G) <-- /home
É assim que minha /boot/EFI
pasta se parece:
└─ /boot/EFI
├─ BOOT
│ └─ BOOTX64.EFI
├─ Linux
│ └─ <empty>
├─ Microsoft
│ ├─ Boot
│ └─ Recovery
└─ systemd
└─ systemd-bootx64.efi
Eu só uso o Windows para jogos e não gosto de ter que escolher um SO no gerenciador de boot toda vez que ligo o computador, então eu altero manualmente a ordem de boot para inicializar no Windows nos fins de semana e altero de volta para o Linux depois. Mas depois de uma atualização de firmware na minha placa-mãe (uma MSI PRO Z690-A DDR4, agora na versão de firmware 7D25v1J) não vejo mais a opção para minha instalação do Linux.
Fazendo algumas pesquisas, encontrei pessoas recomendando reinstalar o gerenciador de boot, mas não tenho muita certeza se esse é o caminho a seguir no meu caso. Estou tentando evitar porque 1) não sei se isso vai bagunçar minha configuração de inicialização segura e 2) bootctl status
exibições em execução:
Então, estou pensando que isso pode ser algo que pode ou precisa ser resolvido pelo software UEFI. Mas não sei o que devo fazer nesse caso.
Tentei chroot
instalar e executar bootctl update
na esperança de que o problema se resolvesse sozinho, mas não funcionou.
Agora estou tentando entender o que aconteceu depois da atualização do firmware (quais mudanças foram feitas e onde) e se isso é algo com que preciso lidar no lado UEFI ou no lado do gerenciador de boot. Ainda sou novo no Arch e em como todo o processo de boot funciona, e honestamente não sei o suficiente para descobrir como prosseguir daqui. Qualquer orientação é apreciada.
PS: Peço desculpas pelas imagens da tela, mas não tenho nada à mão para capturar a tela agora.
A criação desta entrada faz parte da (re)instalação do gerenciador de boot. O EFI não descobre automaticamente os sistemas operacionais a partir de arquivos – ele requer que cada entrada de SO seja criada separadamente na NVRAM da placa-mãe (ou seja, a "memória CMOS" onde as configurações de firmware são mantidas).
As duas exceções a isso são 1) o
EFI\BOOT\BOOTX64.EFI
arquivo, que atua como o bootloader "padrão" quando nenhuma entrada está presente, ou quando você pede ao firmware para inicializar um disco inteiro (como nos dias do BIOS), e 2) alguns fabricantes tentando ser úteis e detectar o Windows especificamente, para que se você limpar as configurações do firmware, você obtenha automaticamente uma entrada do Windows (mas geralmente nada mais).Então, se você executá-lo,
bootctl install
ele realmente recriará a entrada de inicialização NVRAM do "Linux Boot Manager" depois de ter copiado novamente todos os seus arquivos para a partição EFI, e o mesmo é feito pelo grub-install ou bcdboot.exe. Se você assinou manualmente esses arquivos para Secure Boot, execute novamentesbctl sign
para assiná-los novamente.A outra opção é usar
efibootmgr
para criar a entrada de inicialização manualmente:...bem como adicioná-lo à "ordem de inicialização" usando
efibootmgr --bootorder 000x,000y
.Este é um bom lugar para usar outro recurso EFI – a variável "BootNext", que permite que você reinicie do Linux diretamente para o Windows sem interagir diretamente com o gerenciador de inicialização (EFI ou qualquer outro). Veja o tópico mais antigo .