Masalah ini dapat disebabkan oleh berbagai masalah yang berbeda sehingga tidak ada solusi tunggal. Langkah-langkah ini harus bekerja pada EC2.
Sumber:
Masalah ini disebabkan oleh konflik perubahan lokal dan jarak jauh dalam konfigurasi warisan Grub . Grub legacy dan Grub2 menggunakan lokasi konfigurasi yang berbeda:
- Warisan Grub:
/boot/grub/menu.lst
- Grub2:
/boot/grub/grub.cfg
Penyebab:
Anda mungkin menggunakan AMI yang Didukung Amazon EBS. Contoh membangun sistem file root mereka dari gambar dasar pra-dibangun (snapshot). Konfigurasi grub ditulis dalam snapshot, tetapi registri UCF tidak dibersihkan dengan benar. Ini berarti bahwa Anda memiliki snapshot yang menganggap menu.lst
konfigurasi itu dimodifikasi secara lokal. Informasi lebih lanjut dapat ditemukan di sini: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1485685
Mengapa ubuntu menggunakan UCF untuk grub dijelaskan di sini: /ubuntu//a/147079
Solusi):
Salah satu solusi umum yang berfungsi adalah menghapus menu.list dan mengkonfigurasi ulang. Ini memastikan bahwa entri registri ucf dan file konfigurasi menyelesaikan hash yang sama.
#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
Solusi kedua adalah memodifikasi konfigurasi UCF untuk secara otomatis menerima perubahan pengelola
unset UCF_FORCE_CONFFOLD
export UCF_FORCE_CONFFNEW=YES
ucf --purge /var/run/grub/menu.lst
sudo apt-get dist-upgrade -qq --force-yes
Penolakan:
Masalah ini sangat luas dan kasus penggunaan akan berdampak pada solusi yang diperlukan. Jika memungkinkan, sangat disarankan untuk meningkatkan ke grub2. Grub2 dapat dikonfigurasi tanpa mengubah file sistem.
Ada juga banyak solusi berbeda yang ditawarkan dan menerbitkan laporan yang dibuka di pelacak ubuntu. Saya ingin menghubungkan mereka semua tetapi tidak memiliki perwakilan.
Semoga berhasil :)