उबंटू को AWS सर्वर पर अपग्रेड करते समय "/boot/grub/menu.lst का नया संस्करण उपलब्ध है"


30

मैंने सिर्फ sudo do_release_upgrade14.04 में अपग्रेड करने के लिए AWS EC2 Ubuntu 13.10 सर्वर पर करने की कोशिश की । निम्न संदेश मिलने तक सब ठीक चल रहा था:

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>

मैंने निश्चित रूप से मेनू को संशोधित नहीं किया है। इसलिए, मुझे लगता है कि स्थानीय संशोधन अमेज़ॅन कर रहे हैं। मैं "स्थानीय संस्करण को वर्तमान में स्थापित रखने का विकल्प" हिट करने जा रहा हूं और सर्वश्रेष्ठ के लिए आशा करता हूं।

लेकिन मुझे यह संदेश क्यों मिल रहा है, और क्या इसे संभालने का सही तरीका है?


जवाबों:


8

यह समस्या अलग-अलग समस्याओं की एक श्रेणी के कारण हो सकती है इसलिए एक भी समाधान नहीं है। इन चरणों को EC2 पर काम करना चाहिए।

स्रोत:

समस्या ग्रब विरासत कॉन्फ़िगरेशन में एक स्थानीय और दूरस्थ परिवर्तन संघर्ष के कारण होता है । ग्रुब विरासत और ग्रब 2 अलग-अलग कॉन्फिग स्थानों का उपयोग करते हैं:

  • ग्रब विरासत: /boot/grub/menu.lst
  • Grub2: /boot/grub/grub.cfg

कारण:

आप शायद Amazon EBS-Backed AMI का उपयोग कर रहे हैं। उदाहरण एक पूर्व-निर्मित आधार छवि (स्नैपशॉट) से उनकी रूट फाइल सिस्टम का निर्माण करते हैं। ग्रब कॉन्फ़िगरेशन स्नैपशॉट में लिखा गया है, लेकिन UCF रजिस्ट्री को सही तरीके से शुद्ध नहीं किया गया है। इसका मतलब है कि आपके पास एक स्नैपशॉट है जो सोचता है कि menu.lstकॉन्फ़िगरेशन स्थानीय रूप से संशोधित किया गया था। अधिक जानकारी यहां पाई जा सकती है: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1485685

Ubuntu grub के लिए UCF का उपयोग क्यों किया जाता है, इसे यहां बताया गया है: https://askubuntu.com/a/147079

समाधान की):

एक सामान्य समाधान जो कार्य करता है वह मेनू.लिस्ट को हटा रहा है और इसे पुन: कॉन्फ़िगर कर रहा है। यह सुनिश्चित करता है कि ucf रजिस्ट्री प्रविष्टि और कॉन्फ़िगरेशन फ़ाइल उसी हैश का समाधान करती है।

#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

एक दूसरा समाधान यूसीएफ कॉन्फिगरेशन को ऑटो में सुधार कर रहा है ताकि अनुचर परिवर्तनों को स्वीकार कर सकें

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

अस्वीकरण:

यह समस्या बहुत व्यापक है और उपयोग के मामले आवश्यक समाधान को प्रभावित करेंगे। यदि संभव हो तो इसकी अत्यधिक ग्रब 2 में अपग्रेड करने की सिफारिश की गई है। Grub2 को सिस्टम फ़ाइलों को संशोधित किए बिना कॉन्फ़िगर किया जा सकता है।

उबंटू ट्रैकर में खोले गए विभिन्न समाधानों और जारी रिपोर्टों की एक टन भी हैं। मैं उन सभी से लिंक करना पसंद करूंगा, लेकिन उनके पास रेप नहीं है।

सौभाग्य :)


ubuntu 18.04 देखकर W: --force-yes को हटा दिया गया है, इसके बजाय --lo से शुरू होने वाले विकल्पों में से एक का उपयोग करें।
स्कॉट स्टेंसलैंड

यह 2019 है और यह समाधान काम नहीं करता है (अब)। ऐसा लगता है कि बग अभी तक फिर से प्रभावित हो
DarkNeuron

0

इस प्रश्न का मेरा संस्करण इस प्रकार है: "मेरे पास ec2 पर स्वचालित कर्नेल है, और हाल ही में किया है apt-get autoremove -y। तब भी जब sudo update-grubमैं केवल 3.13.0-48सूचीबद्ध में देखता हूँ /boot/grub/menu.lstलेकिन स्थापित गुठली के बीच नहीं। मैं कितना खराब हूँ?"

मेरा उत्तर: "संभवतः खराब नहीं। अन्य उबंटू प्रणालियों पर menu.lstभी मौजूद नहीं है, और इसके बजाय update-grubकॉन्फ़िगरेशन डाल रहा है /boot/grub/grub.cfg। मेरा अनुमान है कि menu.lstEC2 के Ubuntu AMI से कुछ अजीब विरूपण साक्ष्य है, या कुछ पैकेजिंग या स्थानीय कॉन्फ़िगरेशन प्रबंधन के साथ बातचीत कर रहा है। "


0

व्यक्तिगत रूप से, आपकी जगह पर मैं "संस्करणों के बीच का अंतर दिखाऊंगा", ध्यान दें कि परिवर्तन क्या हैं, फिर "विकास" AWS उदाहरण में नए अंतरों के साथ प्रयोग करें। अगर मुझे अतिरिक्त सतर्क किया जा रहा था, तो मैं बस प्रश्न में बदलाव के लिए मैन पेज पढ़ूंगा (वे मेनू के लिए नहीं हो सकते हैं। लेकिन, कर्नेल, या बिल्ली जैसा कुछ अन्य सॉफ़्टवेयर, वास्तव में) यह पता लगाने के लिए कि वास्तव में क्या बदल रहा है ।

वैकल्पिक रूप से, आप इस वर्चुअल मशीन को क्लोन कर सकते हैं, अपग्रेड कर सकते हैं, देख सकते हैं कि क्या होता है, और यदि वह विफल रहता है, तो आप नए वीएम को न्यूक करते हैं और फिर से एक अलग विकल्प के साथ प्रक्रिया शुरू करते हैं। वर्चुअल मशीन अकेले इस कारण से महान हैं।


0

मैं ओवीएच से वीपीएस के साथ बस उसी "समस्या" में भाग गया।
मेरे मामले में (और कई अन्य लोग जिन्हें मैंने Googling करते हुए पाया था) केवल बदलाव व्हाट्सएप थे।
वे कहां से आते हैं मुझे नहीं पता, लेकिन अगर आप चयन करते हैं show the differences between the versionsऔर जवाब No non whitespace changes detectedसिर्फ अनुरक्षक संस्करण लेते हैं।


-1

आपकी पंसद

  • संस्करणों के बीच अंतर दिखाएं

फिर

  • पैकेज अनुरक्षक के संस्करण को स्थापित करें

या

  • वर्तमान में स्थापित स्थानीय संस्करण को रखें

वैसे भी, अब आप चला सकते हैं

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

1
-1; यह बिल्कुल भी सवाल का जवाब नहीं देता है (वास्तव में, यह ज्यादातर मेरे द्वारा पहले से उद्धृत संदेश के बिट्स को दोहराता है), और न ही यह बताता है कि मैं प्रदान किए गए कोड को क्यों चलाना चाहता हूं या यह क्या करेगा।
मार्क अमेरी

फ़ाइलें हैश मिसमैच विकल्पों के साथ संदेश का कारण बनती हैं, आपको सही विकल्प चुनने के लिए उनके बीच अंतर खोजना होगा। "whatis ls diff" कमांड के विवरण को प्रिंट करता है।
Imya

"फाइलें हैश मिसमैच विकल्पों के साथ संदेश का कारण बनती हैं" - हां, मैं पढ़ सकता हूं। मेरा प्रश्न है कि EC2 उदाहरणों पर ये अंतर क्यों हैं और उन्हें रखने या छोड़ने के क्या परिणाम होंगे। आपका उत्तर इसे बिल्कुल भी संबोधित नहीं करता है, यह सिर्फ वही दोहराता है जो संदेश में छपा है। आपके उत्तर में Amazon या EC2 का उल्लेख नहीं है; यह उस प्रश्न के लिए प्रासंगिक नहीं है जो पूछा गया था।
मार्क अमेरी

ओह, बोई, यहां तक ​​कि फाइलों की सामग्री भी उपलब्ध नहीं कराई गई है और दूसरों को पता चलेगा कि उसके सिस्टम पर क्या चल रहा है।
इम्या

1
यह "मेरा सिस्टम" नहीं है। मैं ईसी 2 के बारे में एक प्रश्न पर मानक ईसी 2 स्थापना व्यवहार के बारे में पूछ रहा हूं और ईसी 2 टैग के साथ टैग किया गया हूं। निश्चित रूप से, मैंने फ़ाइल की पूरी सामग्री को प्रश्न में डंप नहीं करने का निर्णय लिया, क्योंकि यह प्रश्न को समझने और जवाब देने के लिए आवश्यक नहीं है; कोई भी व्यक्ति जो ईसी 2 पर उबंटू का उपयोग करता है, यदि वे इस मुद्दे की जांच करना चाहते हैं तो इसकी सामग्री की जांच करने में सक्षम है। मुझे नहीं लगता कि मुझे इस बारे में पूछने से पहले फाइल के स्रोत को किसी लोकप्रिय लाइब्रेरी के स्रोत कोड को स्टैक ओवरफ्लो प्रश्न में डंप करने की अपेक्षा क्यों करना चाहिए।
मार्क अमेरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.