उबंटू वितरण उन्नयन के दौरान शटडाउन से पुनर्प्राप्त


18

मेरे पास एक कंप्यूटर है जो वितरण उन्नयन के दौरान अप्रत्याशित रूप से बंद हो गया था (Ubuntu 8.10 -> 9.04)। यह अब बूटिंग को समाप्त नहीं करेगा - विभिन्न एक्स त्रुटियां, फिर यह लॉगिन स्क्रीन पर जाती है लेकिन लॉगिन की अनुमति नहीं देगी।

मेरे पास इसका बैकअप है और / / होम डेटा ड्राइव पर अभी भी ठीक है इसलिए यह कोई आपात स्थिति नहीं है, लेकिन एक पूर्ण पुनर्निर्माण अभी भी एक कष्टप्रद और समय लेने वाली प्रक्रिया है। क्या इससे उबरने का कोई तरीका है? मेरे पास एक 9.04 सीडी है, मैं शीर्ष पर स्थापित करने की कोशिश कर रहा था - क्या यह एक अच्छा विचार है?

असफल होना, क्या ड्राइव का निरीक्षण करने और स्थापित सॉफ़्टवेयर की सूची तैयार करने का कोई अच्छा तरीका है, और अधिमानतः बाहर / घर (जैसे / आदि) से भी सेटिंग है?


अगर मुझे खरोंच से फिर से शुरू करना है, तो अप्रत्याशित बंद के लिए जिम्मेदार व्यक्ति से निपटने के लिए कोई सिफारिशें? :)


संपादित करें: सभी उत्तरों के लिए बहुत-बहुत धन्यवाद, मुझे वास्तव में सभी उत्तरों को स्वीकार करने की आवश्यकता है क्योंकि मुझे प्रत्येक से बिट्स का उपयोग करने की आवश्यकता है। मैं इस तरह से कुछ का उपयोग कर पूरी तरह से स्थापित करने में सक्षम था:

sudo dpkg --configure -a
sudo apt-get update
sudo dpkg --configure -a
sudo dpkg --configure -a --abort-after=99999
sudo apt-get dist-upgrade
sudo apt-get -f install
sudo apt-get dist-upgrade

1
एक LART ( catb.org/jargon/html/L/LART.html ) का उपयोग करें : "LART क्लासिक एक 2x4 या एक क्लब के रूप में उपयोग करने योग्य लकड़ी के अन्य बड़े बिललेट है [...] घुंडी, स्वचालित हथियार, फ्लैमेथेर्स, और सामरिक। nukes सभी के अपने पक्षपात हैं। "
डेविड श्मिट

क्या आप वास्तव में लॉग इन क्रेडेंशियल्स टाइप कर सकते हैं, या कीबोर्ड और / या माउस अनुपलब्ध हैं?
ओडामुंड

मैं क्रेडेंशियल में टाइप कर सकता हूं, लेकिन यह आगे नहीं बढ़ेगा। CTRL + ALT + F1 ने मुझे एक टर्मिनल दिया था और मैं वहाँ लॉग-इन करने में सक्षम था
कॉलिन पिकार्ड

जब usr / usr, / home और इसी तरह के फ़ोल्डर अलग डिस्क से माउंट किए जाते हैं, तो इस स्थिति में बाइंड मदद मिलती है। माउंट माउंट --bind / proc / chroot / proc माउंट --bind / mnt / usr / chrooted / usr ...

जवाबों:


11

अगर आपको ऐसी जगह मिल सकती है जहाँ आप dpkg को जड़ के रूप में इस्तेमाल कर सकते हैं, तो आप दौड़ सकते हैं dpkg --configure -a

हालाँकि, आप पा सकते हैं कि एक बोर्कड डिस्ट-अपग्रेड के लिए विस्फोट होता है, इसलिए आपको आवश्यकता हो सकती है:

dpkg --configure -a --abort-after=99999

7

CTRL-ALT-F1 दबाने की कोशिश करें और देखें कि क्या आपको कमांड प्रॉम्प्ट मिलता है। देखें कि क्या आप लॉग इन कर सकते हैं, तो sudo apt-get dist-upgrade चलाकर देखें । यह आपको अपग्रेड को पूरा करने की अनुमति देता है। आपको त्रुटियां मिल सकती हैं इसलिए आपको sudo dpkg --configure -a का उपयोग करने की कोशिश करनी पड़ सकती है ।


स्थापित सॉफ़्टवेयर की सूची प्राप्त करने के लिए आप कमांड dpkg --get-selections चला सकते हैं । यदि आप उस कमांड के आउटपुट को फाइल में सेव करते हैं तो आप कमांड कैट सिलेक्शन का उपयोग कर सकते हैं sudo dpkg --set-selections और फिर कमांड sudo apt-get dselect-upgrade को वास्तव में सभी संकुल को स्थापित करने के लिए उपयोग करें।

यदि आप उस मार्ग पर जाते हैं, तो आपको संभवतः अपने / और / और घर के फ़ोल्डरों का बैकअप किसी अन्य डिवाइस पर देना चाहिए।


मुझे लगता है कि मैं अपने बैकअप स्क्रिप्ट के लिए dpkg --get-selects जोड़ने जा रहा हूं। बहुत उपयोगी।
कॉलिन पिकार्ड

5
sudo apt-get update
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get dist-upgrade

पहली पंक्ति उस रेपो के वर्तमान स्तर को ताज़ा करती है जिसे आप डाउनलोड कर रहे हैं

2 वीं पंक्ति किसी भी पैकेज को "खराब" स्थिति में समेट देती है

तीसरी पंक्ति 2 पंक्ति की प्रक्रिया के दौरान रिपॉजिटरी "चाल" के नए संस्करण में आने की स्थिति में है।

4 वीं पंक्ति को काम खत्म करना चाहिए।


5

मैं एक भयावह स्थिति से उबरने में सक्षम था जहां एक उन्नयन के दौरान बिजली जाने के बाद जुबांटु बूट नहीं करेगा। POST के लगभग 10 सेकंड बाद, Xubuntu त्रुटियों की मेजबानी के साथ रुक जाएगी (ग्रब में "पुनर्प्राप्ति" विकल्प को लोड करने की कोशिश करना भी काम नहीं करेगा)।

इसलिए अगर कोई इस पर ठोकर खाता है, तो मैं उबंटू मंचों से कुछ जानकारी पोस्ट कर रहा हूं जिसने मुझे टर्मिनल विंडो पर पहुंचने में मदद की ताकि मैं ऊपर पोस्ट किए गए कॉलिन और एवरी का उपयोग कर सकूं।

---------- स्निप ---------- स्निप ---------- स्निप ---------- स्निप ------ ----

ubuntuforums.org/showthread.php?t=157250

मान लें कि आपका सिस्टम अपग्रेड के बाद बस पिघल गया है, या आपका नया कर्नेल बूट नहीं होगा। आप apt-get के साथ समस्या को ठीक नहीं कर सकते, क्योंकि आप कमांड लाइन पर भी नहीं जा सकते हैं; कर्नेल सिर्फ त्रुटियों को मिटाता है और बूटअप पर लटका देता है। शुक्र है, एक जीवित सीडी के साथ, आप अपने सिस्टम की मरम्मत कर सकते हैं और इसे ऊपर और चला सकते हैं। आपके पास लाइव सीडी के लिए 2 विकल्प हैं: नोप्पिक्स या उबंटू लाइव सीडी। चूंकि नोपेपिक्स में आमतौर पर बेहतर हार्डवेयर डिटेक्शन होता है, इसलिए इसे एक उदाहरण के रूप में इस्तेमाल किया जाएगा।

  1. सबसे पहले, http://www.knoppix.org/ से iso डाउनलोड करें और इसे डिस्क पर जलाएं।
  2. अपने BIOS को cd से बूट करने के लिए सेट करें, Knoppix डिस्क और पॉप में बूट करें।
  3. आपकी हार्ड ड्राइव को केडीई डेस्कटॉप पर hda1 या sdb2 या कुछ के रूप में दिखाना चाहिए, जो आपके सिस्टम पर निर्भर करता है।
  4. इसे माउंट करने के लिए उस पर क्लिक करें, फिर राइट-क्लिक करें, एक्शन -> रीड-राइट मोड में बदलें। यह एक संवाद खोलेगा; हाँ क्लिक करें।
  5. अब, एक मूल टर्मिनल खोलें, जो नोपेपिक्स मेनू (पैनल पर कश्मीर के बगल में) में पाया गया है। दर्ज करें: chroot / mnt / hda1 या आपके हार्डड्राइव के आइकन जो भी डेस्कटॉप पर कहते हैं।

अब आप हार्ड-ड्राइव पर सभी कमांड का उपयोग कर सकते हैं, जिसमें apt-get भी शामिल है। यदि आपको कभी यह त्रुटि मिलती है: "/ dev / null: अनुमति अस्वीकृत" तो ऐसा करें: "sudo rm / dev / null" और इसे चला जाना चाहिए। अब, अपने कर्नेल, udev, या कुछ और को अपग्रेड करने के लिए apt-get का उपयोग करें जो आपके सिस्टम को गड़बड़ कर रहा है।

---------- स्निप ---------- स्निप ---------- स्निप ---------- स्निप ------ ----

यह भी पूरी तरह से काम किया! मैंने निर्देशों के अनुसार अपनी हार्ड ड्राइव लगाई, एक टर्मिनल विंडो खोली, "sudo chroot / media / hda1" में प्रवेश किया, और अंत में मेरी हार्ड ड्राइव तक पहुंच थी। मैं तब नवीनीकरण प्रक्रिया को पुनरारंभ करने के लिए इस थ्रेड में पहले से तैनात आदेशों का उपयोग करने में सक्षम था। :)

यह कोई आश्चर्य नहीं है कि उबंटू लाइव / इंस्टॉलेशन सीडी में "रिकवरी कंसोल" क्यों नहीं है जो इस पूरी रिकवरी प्रक्रिया को सुविधाजनक बनाने के लिए बनाया गया है।


यह मेरे लिए एक समान स्थिति में काम करता था। एसयू पर यह जवाब लाइव सीडी से विभाजन (ओं) को सही ढंग से माउंट करने के लिए महान निर्देश देता है।
zelanix 17

1

मेरे लिए भी एक और आदेश सभी संकुल को ठीक तरह से कॉन्फ़िगर करने के लिए पर्यावरण को नियंत्रित करने में मदद करता है (इसे dpkg ,distआदि से पहले चलाएँ ):

अपस्टार्ट की नौकरियों को चेरोट में शुरू नहीं किया जा सकता है क्योंकि अपस्टार्ट एक सेवा पर्यवेक्षक के रूप में कार्य करता है, और चेरोट के भीतर प्रक्रियाएं चिरोट के बाहर चलने वाले अपस्टार्ट के साथ संवाद करने में असमर्थ हैं (बग: 430224)। यह कुछ संकुल का कारण बनेगा जो कि चेरोट के भीतर अपग्रेड करने में विफल होने के लिए init स्क्रिप्ट के बजाय upstart नौकरियों का उपयोग करने के लिए परिवर्तित किया गया है। उपयोगकर्ताओं को सलाह दी जाती है कि वे अपने chroots को / sbin / initctl के साथ / bin / true को इंगित करने के लिए कॉन्फ़िगर करें, चेरोट के भीतर चलने वाले निम्न आदेशों के साथ:

कोड:

dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initct
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.