Esse problema pode ser causado por vários problemas diferentes, portanto não há uma solução única. Essas etapas devem funcionar no EC2.
Fonte:
O problema é causado por um conflito de alterações local e remoto na configuração herdada do Grub . O Grub legado e o Grub2 usam diferentes locais de configuração:
- Legado do Grub:
/boot/grub/menu.lst
- Grub2:
/boot/grub/grub.cfg
Causas:
Você provavelmente está usando uma AMI suportada pelo Amazon EBS. As instâncias constroem seu sistema de arquivos raiz a partir de uma imagem base pré-criada (instantâneo). A configuração do grub é gravada no instantâneo, mas o registro UCF não é removido corretamente. Isso significa que você tem um instantâneo que acha que a menu.lst
configuração foi modificada localmente. Mais informações podem ser encontradas aqui: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1485685
Por que o ubuntu usa UCF para grub é explicado aqui: https://askubuntu.com/a/147079
Solução (s):
Uma solução geral que funciona é remover o menu.list e reconfigurá-lo. Isso garante que a entrada do registro ucf e o arquivo de configuração sejam resolvidos com o mesmo hash.
#Remove the menu.lst config.
sudo rm /boot/grub/menu.lst
# Generate a new configuration file.
sudo update-grub-legacy-ec2 -y
#Upgrade the configuration
sudo apt-get dist-upgrade -qq --force-yes
Uma segunda solução é modificar a configuração do UCF para aceitar automaticamente as alterações do mantenedor
unset UCF_FORCE_CONFFOLD
export UCF_FORCE_CONFFNEW=YES
ucf --purge /var/run/grub/menu.lst
sudo apt-get dist-upgrade -qq --force-yes
Aviso Legal:
Esse problema é muito amplo e os casos de uso afetarão a solução necessária. Se possível, é altamente recomendável atualizar para o grub2. O Grub2 pode ser configurado sem modificar os arquivos do sistema.
Há também uma tonelada de soluções diferentes oferecidas e relatórios de problemas abertos no rastreador do ubuntu. Eu adoraria vincular a todos eles, mas não tenho o representante.
Boa sorte :)