Arch 2020.11 - Nenhuma mídia passível de boot encontrada após instalação básica

Resumo
Após a instalação completa do Arch Linux 2020.11 (com o grub em efi) ele não detecta que existe um sistema disponível para boot no HDD

Descrição
Realizei a instalação do Arch utilizando como referência o artigo do dio e a wiki do arch.

Toda a instalação foi bem sucedida, nenhum aviso ou erro. Todos os comandos foram executados corretamente, fiz questão de tentar instalar mais de uma vez para ter certeza do que estava acontecendo.

Separei as partições da seguinte forma em meu HDD de 1tb:
sda1 - 500M - BIOS boot = boot
sda2 - 100G - Linux filesystem = /
sda3 - 800G - Linux filesystem = home
sda4 - 10G - Linux filesystem = swap

Montei todas corretamente no sistema e as formatei.

O hardware que estou instalando o sistema é um ACER com um i5 de 7* com uma 940MX da
Nvidia.

O Secure Boot da bios está desativado.
A bios está configurada para UEFI

Ao apertar o botão de ligar, o sistema apenas me retorna:

“No bootable device.”

Peguei o mesmo HDD e coloquei em outro sistema e aconteceu a mesma coisa.

Olhei na Wiki, segui as mesmas instruções e aconteceu a mesma coisa.

Instalei outros sistemas como pop os, manjaro e etc… Funcionaram perfeitamente.

Não sou tão novo assim no linux, apesar de utilizar macOs e windows diariamente, meus serviços no trabalho funcionam em um ubuntu, onde acesso todo dia.

Objetivo

Meu objetivo é aprender ainda mais sobre o linux, como o Arch é uma “distro” faça-você-mesmo, sou super interessado nela, não vou utilizar como meu daily driver, mas pretendo utilizada diariamente.

Pretendo instalar o Arch com o Kde, mas não quero utilizar o manjaro, quero a instalação mais limpa possível.

Resumo*

Poderiam me auxiliar a descobrir o que estou fazendo de errado? Já tentei toda forma de detectar e corrigir o problema que conheço, mas não fui capaz.

Obrigado.

1 curtida

Confirme se um boot loader foi instalado corretamente. Não está no “corpo do texto” do guia porque tem várias opções de bootloader que deixariam esse artigo já grande ainda maior, mas é o que deixa o sistema bootável.

Todas as grandes distros usam o GRUB, se quiser usar essa configuração.

1 curtida

Olha é o seguinte.
Vc instalou o Arch na UEFI do seu computador.
A UEFI geralmente consegue encontrar sozinha o caminho até
o arquivo de boot do WINDOWS, mas geralmente
falham em detectar automaticamente o boot do GRUB (grubx64.efi).

Você deve adicionar uma entrada na NVRAM da UEFI/BIOS manualmente.
Entre na sua BIOS, vá em dispositivos de boot, adicione uma nova entrada.

Vc deve tentar adicionar uma entrada de boot:
/boot/
ou ir tentando outros caminhos até chegar na imagem de boot.
Por exemplo, no meu laptop isto está bagunçado, mas
existe um arquivo em ‘/boot/efi/EFI/Manjaro/grubx64.efi’
por exemplo… Então pode ser necessário você apontar
o caminho completo, ou não…

Outra coisa, tenha certeza de que adicionou as ‘flags’
de ‘boot’ e ‘esp’ na partição /boot do seu sistema…

1 curtida

Verifique se tem entrada salva na firmware referente a sua instalação.

efibootmgr -v

Se não tiver, então houve erro na instalação do GRUB e vc precisa reinstalá-lo ou então criar a entrada efi “na mão” (o que não é tão dificil).

Outro ponto é que quando vc tira o hd de um computador e coloca noutro computador, não vai detectar o bootloader por não ter a entrada no efi daquele computador. Aí vc pode ir no menu de boot da própria firmware e ver se ela detecta o sistema operacional. Alguns firmwares até permitem que vc adicione uma entrada efi na própria interface do firmware, mas aí vc precisa ver quais recursos sua placa mãe disponibiliza (alguns tem até um shell uefi pra vc poder dar boot “na mão”).

2 curtidas

Sim, desculpe! Esqueci de mencionar no texto que o grub foi instalado corretamente também!

Edit:
Vou testar todas as respostas que vocês deram e posto o resultado aqui, Obrigado

1 curtida

Outra coisa para você conferir é o tipo de particionamento, o HD precisa estar no modo GPT para que o boot via UEFI funcione. É fácil verificar isso usando quando live distro com o comanado:

parted -l

:vulcan_salute:

1 curtida

A descrição fornecida não nos permite verificar o que você fez, nem como fez.

Por exemplo, da última vez fiz assim:

1) ========== Live DVD ==========

# ping google.com
# loadkeys br-abnt2
# mount /dev/sda3 /mnt
# mkdir /mnt/home
# mount /dev/sdb3 /mnt/home
# swapon /dev/sdb14
---------------------------
# mkdir /mnt/boot
# mkdir /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi
---------------------------
# nano /etc/pacman.d/mirrorlist                  ###   moved Brazilian mirrors to top
# pacstrap /mnt base linux linux-firmware
# genfstab -U -p /mnt >> mnt/etc/fstab
# arch-chroot /mnt


2) ========== chroot ==========

# echo 'export HISTTIMEFORMAT="%F_%H-%M-%S "' >> ~/.bashrc
                                                 ###   it was zsh !
# ln -sf /usr/share/zoneinfo/America/Sao_Paulo/etc/localtime /etc/localtime
# hwclock --systohc
# timedatectl set-ntp true

# pacman -S nano
# pacman -S intel-ucode
# pacman -S man-db man-pages texinfo
# pacman -S dosfstools os-prober mtools
# pacman -S networkmanager network-manager-applet wpa_supplicant wireless_tools dialog sudo
# pacman -S grub-efi-x86_64 efibootmgr

# nano /etc/locale.gen                           ###   enabled:  "en_GB.UTF-8 UTF-8"

# locale-gen
# echo LANG=pt_BR.UTF-8 >> /etc/locale.conf
# echo KEYMAP=br-abnt2 >> /etc/vconsole.conf
# nano /etc/hostname                             ###   added:    "Linux2"

# nano /etc/hosts                                ###   added:    127.0.0.1 hostname.localdomain
                                                                 ::1
                                                                 127.0.1.1 Linux2.localdomain

# passwd
# useradd -m -g users -G wheel flavio
# nano /etc/sudoers                              ###   added:    flavio ALL=(ALL) ALL

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
# grub-mkconfig -o /boot/grub/grub.cfg

# exit


3) ==== Exit chroot === REBOOT ====

Verifique se realizou os passos acima ─ com as eventuais adaptações ao seu hardware.

Acho muito provável que você tenha realizado mais de 90% da instalação, e esteja faltando apenas algum “pequeno detalhe”.

Por exemplo, após instalar o Grub (pacman), instalou na partição EFI e “gerou” o Grub? (os 2 últimos comandos, antes do exit)? ─ Pequenos detalhes assim.

Sugiro que, em vez de tentar uma terceira vez, tente primeiro examinar a instalação já feita. ─ Isso pode ser feito a partir de uma sessão Live Pendrive ou Live DVD, de qualquer outra distro.

Acima - Como “vejo” a pasta /boot do meu Arch, olhando “de fora” (outra distro em dualboot). ─ Naturalmente, a EFI não está montada ali, neste momento (é apenas um link ou ponto-de-montagem).

Agora, a partição EFI, tal como vejo a partir de outra distro, onde ela está montada no momento.

Usando os privilégios de superusuário (root) de outra distro, você também pode examinar a pasta /root do Arch e copiar o arquivo /root/.bash_history, que deve ter o histórico de todos os comandos que você executou durante a instalação, para conferir se faltou algum, ou se digitou alguma letra errada.

(No mc rodando como root, use F5 para Copiar, e não F6 como usei no exemplo acima, que felizmente cancelei).

Ali você poderá conferir se faltou alguma etapa da instalação do Grub na EFI e posterior “geração do Grub”.

Imagino que você aproveitou a partição EFI já existente, do Windows? Nunca fiz isso, pois não tenho Windows. Vi alguns relatos sugerindo alguns cuidados, mas não sei dizer quais. ─ Caso tenha criado uma EFI nova, verifique se é Fat32, e se as flags boot e efi foram aplicadas. ─ Suponho que sim, mas na dúvida, é uma das possibilidades de erro.

1 curtida

Sim, está como GPT.

Agora achei estranho que o sda1 que no caso é minha partição de boot está com bios_grub

Sendo que o grub que está instalado é o efi

Executei os seguintes comandos para instalar o grub:

pacman -S grub-efi-x86_64 efibootmgr

E depois

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch --recheck

Então, cheguei a ver isso e está lá sim, porém tem mais outros das distros que já instalei antes (manjaro e pop)

A ordem é a seguinte:

Manjaro (\EFI\Manjaro\grubx64.efi)
PopOS (\EFI\systemd\systemd-bootx64.efi)
arch (\EFI\arch\grubx64.efi)

Muito obrigado por sua resposta, verifiquei a minha estrutura com a que você tem, e sim, a estrutura que eu tenho está desta mesma forma

Sobre as partições, acredito que o problema seja esse da flag bios_grub

Só um outro ponto,

Aqui está o history

Abri o Calam Arch em VM pra ver uma coisa que lembrei… tem um treco desses aí no teu particionamento?

“Uma partição sem formatação de 8 MB com o marcador bios_grub ativado”

Não, não possui, mas esse bios_grub não seria caso eu estivesse fazendo o boot por BIOS e não EFI?

1 curtida

Só um outro ponto

Eu refiz toda a instalação, porém dessa vez a partição de /boot eu coloquei como EFI System
(Acreditei que era esse o problema, pois no final da instalação, o parted -l como o @eddiecsilva comentou mostrou da mesma forma que o dele com a flags: bios, esp) mas mesmo assim não funcionou.

Antes de reiniciar também chequei o efibootmgr -v e lá estava grub que tinha configurado.

Realmente não sei o que posso estar fazendo de errado :confused:

Não, ele recomenda que em sistemas UEFI ou MBR que usem particionamento GPT se use tal partição

Entendi, pois vou criar essa partição aqui e já aviso se deu certo…

Obrigado

1 curtida

Outra coisa:

Essa é minha configuração de partições:

Como podem ver, O ID da EFI é 9385f6b8…

Esse aqui é o retorno do efibootmgr -v

Onde o ID do PurpleOS (que é como apelidei para ter certeza do que era o que) tem o mesmo Id e dessa vez está em primeiro.

Tente assim:

flags: boot, esp

1 curtida

Entendi que isso é só para GPT em sistemas BIOS ─ não em sistemas UEFI.

1 curtida

Poizé, fiquei na dúvida agora…

1 curtida