Este é um processo longo e estranho, mas funciona.
Parte Um: Criando uma partição de inicialização do BIOS.
O primeiro problema foi que estou usando uma tabela de partições GPT. Só porque você pode instalar o Linux e inicializá-lo de alguma forma não significa que o GRUB está funcionando bem. Eu diria que se eu pudesse inicializar anteriormente, as coisas estão bem, mas não é exatamente esse o caso. Crie uma partição não formatada com o conjunto de sinalizadores bios_boot
. A melhor maneira de fazer isso é desde o início antes de instalar qualquer coisa no seu disco rígido, mas ainda funcionará se você precisar fazer isso depois, embora você tenha uma partição estranha no final do disco . Eu gosto de coisas estranhas para estar no início do disco. De qualquer forma, eis o que você precisa fazer.
Devido à forma como a GPT é 1.000.000 vezes mais eficiente e inteligente (e ainda assim de alguma forma muito menos suportada) do que o MBR, não há espaço no disco para a instalação do GRUB. Geralmente, o GRUB se instala no início do disco entre partições, devido ao fato de que o MBR requer uma lacuna após ele. Esquisito? Totalmente, mas é assim que é. Vamos começar.
Primeiro, verifique se você tem a unidade certa . Não continue até saber que /dev/sdX
é a unidade que você acha que é. Agora que você fez sua devida diligência, faça de novo. Três vezes, só para ter certeza. Ok, vamos seguir em frente.
Agora, instale parted
( # apt-get install parted
) e inicie-o voltado para sua unidade:
$ sudo parted /dev/sdX
Se ainda não o fez, defina o rótulo de registro de inicialização como GPT:
(parted) mklabel gpt
Em seguida, crie uma partição para o material de inicialização do BIOS. Eu estou colocando o meu no começo do disco, então aqui está o meu:
(parted) mkpart primary 0MB 1MB
Você deve alterar os números acima para informar ao parted onde deseja que a partição inicie e pare , respectivamente.
Agora, vamos definir o sinalizador nessa partição. Você pode querer executar o comando print
no parted para obter o número da partição. No meu caso, é 1
, já que será a primeira partição, então é assim que definimos o sinalizador:
(parted) set 1 bios_grub on
Ok, agora que você criou essa partição, terminamos essa parte. Se desejar, você pode criar sua partição real do sistema de arquivos fazendo o seguinte:
(parted) mkpart primary 1MB 1TB
Só execute o comando acima se for o que você realmente quer fazer e você ainda não instalou nada. Se você tem um sistema borked, não crie outra partição.
Parte Dois: Corrigindo o GRUB
Agora, você precisará corrigir o GRUB e o fstab. Vamos abordar o fstab primeiro. Carregue um Live CD e monte seu sistema de arquivos em /mnt
no Live CD.
$ sudo mount /dev/sda /mnt
Agora, obtenha o UUID do disco rígido usando o comando blkid
:
$ sudo blkid /dev/sda1
UUID="abcdef-1231241241-12124124-12ae21331"
Pegue o UUID e atualizaremos /etc/fstab
com ele. Abra /etc/fstab
e atualize o UUID com o novo que você acabou de receber de blkid
. Certifique-se de também substituir ext4
por btrfs
, agora que você alterou o tipo de sistema de arquivos. Procure a linha que tem um /
, esta é sua partição raiz, esta é a que você deseja ajustar. Ótimo.
Agora, vamos atualizar o grub.
$ sudo grub-install --root-directory=/mnt /dev/sda
O Grub atualizará e instalará no disco rígido. Legal. O próximo passo é atualizar seus arquivos de configuração do GRUB. Vamos vincular algumas partições do sistema ao /mnt
dir:
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /sys /mnt/sys
$ sudo mount --bind /proc /mnt/proc
Agora, vamos chroot em seu sistema de arquivos.
$ sudo chroot /mnt
Isso fará com que você efetue login no seu sistema de arquivos como se o seu computador estivesse rodando. Em seguida, atualize o grub.
$ sudo update-grub2
Espero que, felizmente, mude e atualize tudo. Legal. Agora, volte para sua vida e faça backup de suas alterações. Aprenda com seus erros.