GRUB quebrado após conversão para btrfs

2

Primeiro, sim, eu suspeitava que mudar meu sistema de arquivos do ext4 para o btrfs quebraria o GRUB e o fstab.

Agora, aqui está o que aconteceu. Eu converti o sistema de arquivos perfeitamente para btrfs e isso funcionou muito bem. Agora, parece que não consigo inicializar, pois recebo um "erro do GRUB: sistema de arquivos desconhecido". Como posso corrigir o GRUB e o fstab para serem atualizados com o novo sistema de arquivos?

    
por Naftuli Kay 26.12.2012 / 02:41

1 resposta

4

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.

    
por 26.12.2012 / 05:43