Ce problème peut être dû à différents problèmes, il n'y a donc pas de solution unique. Ces étapes devraient fonctionner sur EC2.
La source:
Le problème est dû à un conflit de modifications local et distant dans la configuration héritée de Grub . Grub legacy et Grub2 utilisent différents emplacements de configuration:
- L'héritage de Grub:
/boot/grub/menu.lst
- Grub2:
/boot/grub/grub.cfg
Causes:
Vous utilisez probablement une AMI basée sur Amazon EBS. Les instances construisent leur système de fichiers racine à partir d'une image de base prédéfinie (instantané). La configuration de grub est écrite dans l'instantané, mais le registre UCF n'est pas purgé correctement. Cela signifie que vous avez un instantané qui pense que la menu.lst
configuration a été modifiée localement. Plus d'informations peuvent être trouvées ici: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1485685
Pourquoi ubuntu utilise UCF pour grub est expliqué ici: /ubuntu//a/147079
Solutions):
Une solution générale qui fonctionne est de supprimer menu.list et de le reconfigurer. Cela garantit que l'entrée de registre ucf et le fichier de configuration sont résolus sur le même hachage.
#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
Une deuxième solution consiste à modifier la configuration UCF pour accepter automatiquement les modifications du responsable
unset UCF_FORCE_CONFFOLD
export UCF_FORCE_CONFFNEW=YES
ucf --purge /var/run/grub/menu.lst
sudo apt-get dist-upgrade -qq --force-yes
Avertissement:
Ce problème est très large et les cas d'utilisation auront un impact sur la solution requise. Si possible, il est fortement recommandé de passer à grub2. Grub2 peut être configuré sans modifier les fichiers système.
Il existe également une tonne de solutions différentes proposées et des rapports de problèmes ouverts dans le tracker ubuntu. J'adorerais créer un lien vers chacun d'eux, mais je n'ai pas de représentant.
Bonne chance :)