Bir AWS sunucusunda Ubuntu'yu yükseltirken “/boot/grub/menu.lst dosyasının yeni bir sürümü mevcut”


30

sudo do_release_upgrade14.04'e yükseltme yapmak için bir AWS EC2 Ubuntu 13.10 sunucusunda bir şey yapmaya çalıştım . Aşağıdaki mesajı alana kadar her şey iyi gidiyordu:

A new version of /boot/grub/menu.lst is available, but the version installed 
currently has been locally modified.

  What would you like to do about menu.lst?       

   * install the package maintainer's version
   * keep the local version currently installed
   * show the differences between the versions
   * show a side-by-side difference between the versions
   * show a 3-way difference between available versions
   * do a 3-way merge between available versions (experimental)
   * start a new shell to examine the situation

  <Ok>

Ben kesinlikle yerel değişiklikleri varsayalım böylece Amazon yapıyor olan, menu.lst'in değiştirmemişsinizdir. "Şu anda yüklü olan yerel sürümü koru" seçeneğini vuracağım ve en iyisini umuyorum.

Ama neden bu mesajı alıyorum, ve bu onu ele almanın doğru yolu mu?


Yanıtlar:


8

Bu soruna bir dizi farklı sorun neden olabilir, bu nedenle tek bir çözüm yoktur. Bu adımlar EC2'de çalışmalıdır.

Kaynak:

Bu sorun Grub'un eski konfigürasyonundaki yerel ve uzak değişiklik çatışmasından kaynaklanıyor . Grub eski ve Grub2 farklı yapılandırma konumları kullanıyor:

  • Grub mirası: /boot/grub/menu.lst
  • Grub2: /boot/grub/grub.cfg

Nedenler:

Muhtemelen bir Amazon EBS Destekli AMI kullanıyorsunuzdur. Örnekler, kök dosya sistemlerini önceden oluşturulmuş bir temel görüntüden (anlık görüntü) oluşturur. Grub yapılandırması anlık görüntüde yazılır, ancak UCF kayıt defteri doğru şekilde temizlenmez. Bu, menu.lstkonfigürasyonun yerel olarak değiştirildiğini düşünen bir anlık görüntünüzün olduğu anlamına gelir . Daha fazla bilgiyi burada bulabilirsiniz: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1485685

Neden ubuntu grub için UCF kullanıyor: https://askubuntu.com/a/147079

Çözüm (ler):

İşe yarayan genel bir çözüm menu.list'in kaldırılması ve yeniden yapılandırılmasıdır. Bu, ucf kayıt defteri girdisinin ve yapılandırma dosyasının aynı karmaşa çözülmesini sağlar.

#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

İkinci bir çözüm, bakım değişikliklerini otomatik olarak kabul etmek için UCF yapılandırmasını değiştirmektir.

unset UCF_FORCE_CONFFOLD
export UCF_FORCE_CONFFNEW=YES
ucf --purge /var/run/grub/menu.lst
sudo apt-get dist-upgrade -qq --force-yes

Yasal Uyarı:

Bu konu çok geniştir ve kullanım durumları gerekli çözümü etkileyecektir. Mümkünse grub2'ye yükseltmeniz şiddetle tavsiye edilir. Grub2, sistem dosyalarını değiştirmeden yapılandırılabilir.

Ubuntu izleyicide bir dizi farklı çözüm önerisi ve sorun bildirimi de açıldı. Hepsine link vermeyi çok isterdim ama temsilcisi yok.

İyi şanslar :)


ubuntu 18.04 W görmek: --force-yes kullanımdan kaldırıldı, yerine --allow ile başlayan seçeneklerden birini kullanın.
Scott Stensland

2019 ve bu çözüm işe yaramıyor (artık). Böceğin
DarkNeuron

0

Bu sorunun sürümü şöyle devam ediyor: "ec2'de otomatik çekirdek güncellemeleri var ve son zamanlarda yaptım apt-get autoremove -y. sudo update-grubYalnızca yüklü olan çekirdekler arasında 3.13.0-48listelenip listelenmediğini gördükten sonra bile. Ne kadar batırdım /boot/grub/menu.lst?"

Cevabım: "Muhtemelen berbat değil. Diğer Ubuntu sistemlerinde menu.lstbile mevcut değil ve bunun yerine update-grubkonfigürasyona giriyor gibi görünüyor /boot/grub/grub.cfg. Benim tahminim menu.lstEC2'nin Ubuntu AMI'sinden garip bir eser, ya da paketleme veya yerel konfigürasyon yönetimi ile etkileşime giriyor. "


0

Şahsen, sizin yerinizde "sürümler arasındaki farkı göstereceğim", değişikliklerin ne olduğuna dikkat edin, daha sonra "gelişme" AWS örneğindeki yeni farkları deneyin. Daha fazla temkinli olsaydım, söz konusu değişiklikler için man sayfasını okurdum (bunlar menu.lst için değil, çekirdek veya heck gibi herhangi bir şey gerçekten olabilir), tam olarak neyin değiştiğini öğrenmek için .

Alternatif olarak, bu sanal makineyi klonlayabilir, yükseltme yapabilir, ne olduğunu görebilir ve bu başarısız olursa, yeni VM'yi nükleer bombaya atabilir ve işlemi farklı bir seçenekle yeniden başlatabilirsiniz. Sanal makineler sadece bu nedenle mükemmeldir.


0

Sadece aynı OVH bir VPS ile aynı "sorun" koştum.
Benim durumumda (ve Googling yaparken bulduğum diğerleri) tek değişiklik boşluklardı.
Nereden geliyorlar bilmiyorum ama seçerseniz show the differences between the versionsve cevap No non whitespace changes detectedsadece bakanlar sürümünü alır.


-1

Senin seçimin

  • sürümler arasındaki farkları gösterme

sonra

  • paketin sahibinin sürümünü yükleyin

veya

  • şu anda yüklü olan yerel sürümü sakla

Neyse, şimdi kaçabilirsin

ls -hl /boot/grub/menu.lst*
diff --suppress-common-lines /boot/grub/menu.lst*

1
1; bu, soruya hiç cevap vermiyor (aslında, daha önce alıntı yaptığım mesajın bitlerini tekrarlıyor) ya da verilen kodu neden çalıştırmak istediğimi ya da ne yapacağını açıklamıyor.
Mark Amery

Dosyaları karma uyuşmazlığı seçenekleri ile mesaj neden, doğru seçeneği seçmek için aralarındaki farkları bulmalısınız. "whats ls diff" komutların açıklamasını yazdırır.
Imya

"Dosyaları karma uyuşmazlığı seçenekleri ile mesaja neden" - Evet okuyabilirim. Benim sorum, bu farklılıkların EC2 örneklerinde neden var olduğu ve onları tutmanın veya atmanın sonuçlarının ne olacağıdır. Cevabınız buna hiç cevap vermiyor, sadece mesajda basılanları tekrar ediyor. Cevabınız Amazon veya EC2'den bile bahsetmiyor; sorulan soru ile ilgili değil.
Mark Amery

Oh, boi, dosyaların içeriğini bile sağlamadı ve başkalarının sistemde neler olduğunu öğrenmesini bekledi.
Imya,

1
Bu "benim sistemim" değil. EC2 hakkında bir soru üzerine standart EC2 kurulum davranışı hakkında soruyorum ve EC2 etiketi ile etiketli. Elbette, dosyanın tüm içeriğini soruya atmamaya karar verdim, çünkü sorunun anlaşılması ve cevaplanması gerekli değil; EC2'de Ubuntu kullanan herkes, sorunu araştırmak istiyorsa içeriğini kontrol etme yeteneğine sahiptir. Neden burada sormadan önce bir dosyanın kaynağını popüler bir kütüphanenin kaynak kodunu bir Yığın Taşması sorusuna attığımdan daha fazla sağladığımı anlamıyorum.
Mark Amery
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.