Por que meu BIOS não reconhece uma partição inicializável?

0

Estou seguindo um guia de instalação do Arch Linux e particiono meu disco rígido usando fdisk . Eu selecionei o tipo de disco dos e criei três partições. Uma dessas partições eu marquei como inicializável. Eu então continuei e completei toda a instalação dentro dessa partição sem erros. Mas agora que eu quero arrancar a partir desta partição, a BIOS não irá sequer listar a partição como uma opção. Além disso, se eu inicializar a partir do pendrive de instalação, não me é oferecido "inicializar o SO existente" ao contrário do que eu esperava.

O que poderia estar errado aqui?

    
por Sebastian Oberhoff 01.09.2018 / 21:08

1 resposta

2

Resposta curta:

Você esqueceu de instalar um gerenciador de inicialização. Dependendo do qual guia que você está seguindo, ele deve ter instruções para o GRUB2 ou o Syslinux. (Desde que lhe disse para definir o sinalizador 'inicializável', estou supondo que é o último.)

Reinicialize novamente no pendrive USB, monte as partições que você fez para que você possa arch-chroot nelas e siga as instruções para Syslinux ou GRUB2 , o que você preferir.

(Observe que depois de instalar qualquer um desses, você ainda precisará criar grub.cfg usando grub-mkconfig ou editar syslinux.cfg manualmente)

Resposta longa:

Primeiro, um BIOS normal não inicializa partições. Ele não entende sistemas operacionais, tabelas de partição nem sinalizadores 'inicializáveis' - esse é o trabalho de qualquer bootloader instalado no setor de inicialização do disco (o MBR). Em outras palavras, o BIOS inicializa apenas o disco

especificado, executando código do MBR e, em seguida, o seu gerenciador de inicialização assume o controle.

Se o disco estava vazio anteriormente, ele não terá nenhum código de inicialização do MBR. Você pode instalar, e. o código de inicialização do MBR do Syslinux - que entende a tabela de partições do MBR, segue o sinalizador 'inicializável' e tenta executar o próprio código de inicialização da partição.

Mas você provavelmente não instalou nenhum código de inicialização na partição. Portanto, mesmo que a partição tenha um sistema de arquivos com todos os arquivos necessários para o Linux - kernel e todos -, ainda não há nada que saiba como localizar e iniciar esse arquivo de kernel. Simplesmente definir o sinalizador "inicializável" não é suficiente para realmente torná-lo inicializável, é o equivalente a colocar sinais de trânsito sem que haja uma estrada.

(Como uma nota lateral, o bootcode MBR não precisa se preocupar com o sinalizador 'inicializável'. Por exemplo, o bootloader GRUB mais popular não precisa dele porque seu bootcode MBR já incorpora diretamente a partição correta número.)

Para instalar tudo necessário para ir do BIOS ao kernel do Linux, você precisa seguir o procedimento de instalação completa do gerenciador de inicialização para o GRUB ou o Syslinux.

    
por 01.09.2018 / 21:55