Já que você está falando sobre o Ubuntu, vou assumir que você usa isso.
Para corrigir, faça o seguinte:
-
Primeiro, verifique se você está trabalhando no sistema instalado , não no sistema ao vivo. Uma imagem ao vivo geralmente tem seu próprio sistema de arquivos raiz que torna a reinstalação do grub mais difícil do que poderia ser. Supondo que você monte seu sistema de arquivos raiz instalado em
/mnt
, você pode fazer isso executando os seguintes comandos (todos como raiz, então use sudo ou algo ao longo dessas linhas, se necessário):mount -o bind /dev /mnt/dev mount -t process proc /mnt/proc mount -t sysfs sys /mnt/sys chroot /mnt
Este último comando inicia um shell dentro do seu sistema instalado. Execute os próximos comandos nesse shell.
- reinstale o grub no MBR:
grub-install --boot-directory=/boot /dev/sda
. Isso pressupõe que seu computador tenha apenas um disco rígido ou que, se tiver mais, ele esteja configurado para inicializar a partir desda
. Se não for esse o caso, ajuste conforme apropriado. - gere novamente o menu grub para uma boa medida:
update-grub
. - agora saia desse shell e reinicialize.
As coisas devem funcionar novamente. Caso contrário, atualize sua pergunta com mais detalhes sobre como as coisas falham.
Atualização : parece que as coisas ainda falham devido ao update-grub querer falar com lvmetad
, que é executado no sistema host, não no convidado. A maneira mais fácil de corrigir isso é (temporariamente) desativar o uso desse daemon. Para isso, edite /etc/lvm/lvm.conf
, encontre a configuração que diz use_lvmetad = 1
e defina como 0
. Em seguida, execute update-initramfs -u -k all
para regenerar o initramfs.