गलती से नाम बदलने / आदि के बाद, मैं इसे वापस कैसे बदलूँ?


36

मैं Ubuntu 18.04 का उपयोग कर रहा हूं।

मैंने /etcफ़ोल्डर का नाम बदल दिया apache2। यही मेरी सबसे बड़ी गलती थी

अब मैं इसे वापस नहीं ले सकता क्योंकि मुझे उपयोग करने की आवश्यकता है sudo, लेकिन जब मैं कोशिश करता हूं तो मुझे त्रुटि मिलती है

sudo: unknown uid 1000

मैं इस समस्या को कैसे ठीक करुं? मेरे पास बूट करने के लिए एक लाइव सिस्टम नहीं है, और रिकवरी मोड में रूट टर्मिनल खुलता है, लेकिन फिर कहावत बंद हो जाती है cannot open password database


17
एक इंस्टॉलेशन माध्यम से बूट करें, "Ubuntu का प्रयास करें" चुनें, अपने रूट फाइल सिस्टम को माउंट करें /mnt, नाम बदलें, रिबूट करें।
एलेक्सपी

इंस्टालेशन माध्यम कैसे बूट करें?
राचून

@Zanna, shift ने मुझे कोई मेनू नहीं दिखाया। शायद अन्य बटन इसे खोल सकते हैं?
राचून

@Zanna, रिकवरी मेनू -> रूट टर्मिनल खोलता है, लेकिन यह कहता है कि पासवर्ड डेटाबेस को नहीं खोल सकता है और बंद कर देता है
राचून

@Zanna, नहीं, नहीं है :(
एक प्रकार का जानवर

जवाबों:


62

समस्याओं को ठीक करने का एक आसान तरीका अक्सर लाइव सिस्टम से बूट करना है, रूट विभाजन को माउंट करना /mnt और फिर फ़ाइल का नाम बदलना।

यदि आपके पास एक लाइव सिस्टम या एक बनाने का साधन नहीं है, या आपके पास सिस्टम तक भौतिक पहुंच नहीं है, लेकिन आप रिबूट कर सकते हैं और GRUB मेनू प्राप्त कर सकते हैं, तो आप रूट शेल और नाम बदलने के लिए GRUB संपादक का उपयोग कर सकते हैं फ़ाइल।

रिबूट या पावर ऑफ, स्विच ऑन और, यदि आप आमतौर पर बूट पर GRUB मेनू नहीं देखते हैं, तो GRUB मेनू पर जाएं Shiftया दबाएं Esc

उबंटू के लिए उन्नत विकल्पों के लिए कर्सर को नीचे ले जाएं और दबाएं enter, फिर eबूट विकल्पों को संपादित करने के लिए दबाएं (केवल एक बार - यहां परिवर्तन स्थायी नहीं होंगे, इसलिए हमें बाद में साफ नहीं करना होगा)।

आपको एक स्क्रीन दिखाई देगी जो इस तरह दिखाई देती है 1 :

GRUB मेनू संपादक का स्क्रीनशॉट

कर्सर को उस रेखा से नीचे ले जाएँ जो इसके साथ शुरू होती है linuxऔर फिर कर्सर को उस रेखा के अंत में या कहीं भी कर्नेल बूट मापदंडों के बीच ले जाएँ। सुनिश्चित करें कि आप सही लाइन पर हैं और यहां सावधानी से टाइप करें, क्योंकि सिस्टम /etcजगह के बिना बूट करने में विफल हो सकता है।

पाठ जोड़ें init=/bin/bashऔर F10बूट करने के लिए दबाएँ ।

यह सिस्टम को इनश के रूप में बैश शेल के साथ शुरू करेगा। आपको एक रूट शेल मिलेगा और फाइलसिस्टम को केवल पढ़ने के लिए माउंट किया जाएगा। 2 फ़ाइल सिस्टम को लिखने योग्य बनाने के लिए, कमांड दर्ज करें

mount -o remount,rw /

अब आप नाम बदल सकते हैं /etc(आप lsपहले चाहते हो सकते हैं )

mv /apache2 /etc

अब आप बूट को सामान्य बूट सिस्टम 3 के साथ स्वयं को बदलने के लिए बूट को सामान्य रूप से यहाँ से रिबूट या पूरा कर सकते हैं :

exec systemd 

मैंने उबंटू मेट 18.04 पर इस प्रक्रिया का परीक्षण किया।


1 VirtualBox से GRUB संपादक की एक अच्छी गुणवत्ता स्क्रीनशॉट प्राप्त करने के लिए कुल्फी के लिए बहुत धन्यवाद !
2 हालांकि PATH /etcइस परिदृश्य में कॉन्फिग फाइलों से सेट नहीं किया जा सकता , लेकिन बैश अपने आप एक सेट हो जाएगा ।
3 अगर exec systemdआप के लिए काम नहीं करता है, exec /sbin/initतो चाल करना चाहिए। यदि नहीं, तो readlink -e /sbin/initजो भी init प्रोग्राम चल रहा होना चाहिए , उसे वह रास्ता देना चाहिए, जिसे आप बाद execमें इसके पूर्ण पथ के साथ ले सकते हैं । यदि आप इस तरह आगे नहीं बढ़ सकते हैं, तो बस प्रवेश करें reboot


4
स्क्रीनशॉट +1 :)
WinEunuuchs2Unix

3
@ कुल्फी आपका बहुत बहुत धन्यवाद! यह अद्भुत है: DI VB का उपयोग नहीं कर सकता क्योंकि मेरे पास पर्याप्त रैम नहीं है। मेरे जवाब को बेहतर बनाने में आपकी मदद करने के लिए बहुत ही अच्छा है
Zanna

3
मुझे लगता है कि मैंने स्क्रीनशॉट को बहुत बड़ा लिया: P ;-) और स्क्रीनशॉट क्रेडिट के लिए धन्यवाद :)
कुल्फी

1
@ राकून आपका बहुत स्वागत है, खुश होकर आपने इसे तय किया :)
Zanna

यह परीक्षण करने की कोशिश कर रहा है, लेकिन उबंटू 18.04.Desktop में काम नहीं कर रहा है। निर्देशों का पालन किया शब्दशः । काम नहीं कर रहा। F10केवल कुछ पंक्तियाँ दिखाई देने के बाद और रिक्त स्क्रीन पर रुक जाती हैं। क्या आप कुछ सुझा सकते हैं?
विजय

8

यदि आपके पास एक लाइव यूएसबी है, तो आपको इसे बूट करने और अपने मौजूदा फाइल सिस्टम को माउंट करने में सक्षम होना चाहिए, फिर /etcवहां से अपना नाम बदलें । यहां एक ट्यूटोरियल है कि कैसे एक लाइव यूएसबी बनाने के लिए आपको इसकी आवश्यकता होनी चाहिए।

एक बार लाइव USB (यदि उबंटू 18.04 ड्राइव का उपयोग कर रहा है) से बूट होने के बाद, "बिना इंस्टॉल किए उबंटू ट्राई करें" का चयन करें और यह अनिवार्य रूप से आपको उबंटू इंस्टॉलेशन का एक पूर्ण उदाहरण देगा जो शटडाउन के बाद जारी नहीं रहेगा। एक बार बूट करने के बाद, आपके पास कुछ विकल्प हैं:

कमांड-लाइन रास्ता

एक टर्मिनल खोलें और चलाएं lsblk। उस वॉल्यूम के लिए देखें जो आपके मूल इंस्टॉलेशन का ड्राइव होगा और ध्यान दें कि यह किस नंबर का है (/ dev / sd #)

फिर, ड्राइव के लिए एक माउंटपॉइंट बनाएं mkdir -p /mnt/directory, फिर ड्राइव को माउंट करें sudo mount /dev/sd# /mnt/directory। निर्देशिका के साथ नेविगेट करें cd /mnt/directoryऔर अब आपको अपनी स्थापना के मूल निर्देशिका में होना चाहिए, लेकिन अब एक कार्यशील sudoकमांड के साथ। चलाने के लिए sudo mv apache2 etcऔर अपने काल्पनिक रूप से काम कर रहे ओएस में रिबूट।

आलेखीय मार्ग

डिस्क की खोज करके डिस्क उपयोगिता खोलें। उस वॉल्यूम का चयन करें जो आपके इंस्टॉलेशन ड्राइव की तरह दिखता है और इसे माउंट करें। फ़ाइल प्रबंधक खोलें और माउंट की गई मात्रा का चयन करें, अपने /apache2फ़ोल्डर पर राइट क्लिक करें और इसे /etcफिर से रिबूट करें।


"ग्राफ़िकल वे" काम नहीं करता है क्योंकि आरटी पर कोई विकल्प "नाम बदलें" नहीं है। पर क्लिक करें।
विजय

1
@Vijay फ़ाइल अनुमतियों के कारण होने की संभावना है, आपको फ़ाइल प्रबंधक को मूल रूप से करने के लिए रूट के रूप में खोलना होगा। ऐसा करने के लिए, sudo nautilusटर्मिनल से कमांड चलाएँ । (उबंटू अपने फ़ाइल मैनेजर के रूप में "nautilus" का उपयोग करता है उसी तरह विंडोज "एक्सप्लोरर" का उपयोग करता है।)
AJMansfield

2
@AJMansfield बेशक एक लाइव सिस्टम पर मायने नहीं रखती है, लेकिन सामान्य तौर पर हमें sudo -H nautilusरूट फाइल्स के मालिक बनने से बचने के लिए उपयोग करना चाहिए $HOME, संभवतः उन्हें एक साधारण उपयोगकर्ता के रूप में चलने वाले प्रोग्रामों द्वारा दुर्गम बना दिया जाए। आप शायद इसके बारे में जानते हैं, लेकिन मैं अन्य पाठकों के लिए उल्लेख कर रहा हूं।
ज़न्ना

6
  1. यहां दिखाए गए अनुसार बूट करने योग्य USB बनाएं

  2. यहां दिखाए गए अनुसार कुंजी दबाकर यूएसबी से बूट करें।

  3. रन करके अपने फ़ाइल-सिस्टम विभाजन का पता लगाएं gparted। मान लीजिए कि यह sdxy है।

  4. टर्मिनल पर चलाएं sudo mount /dev/sdxy /mnt

  5. टर्मिनल पर चलाएं sudo mv /mnt/apache2 /mnt/etc

  6. नाम परिवर्तन के लिए अपने फ़ाइल सिस्टम को / mnt में जांचें।

  7. टर्मिनल पर चलाएं sudo reboot

  8. जब पूछा जाए कि यूएसबी हटाएं और एंटर दबाएं


@ कुल्फी मैंने कोशिश की लेकिन यह सूडो के बिना काम नहीं करता। देखें यहाँ
विजय

ऐसा इसलिए है क्योंकि sda2 को sudo के साथ रखा गया था, इसलिए केवल sudo ही कार्य कर सकता है। लेकिन अगर आप ड्राइव को नॉटिलस (बिना किसी विशेष अनुमति के) से चलाते हैं, तो आप बिना सुडो के कार्य कर सकते हैं।
कुल्फी

यह जाँच की गई `ubuntu @ ubuntu: ~ $ आरोह / देव / sda2 / mnt माउंट: केवल रूट ही ऐसा कर सकता है कि ubuntu @ ubuntu: ~ $
विजय

1
AFAIK mountकार्यक्रम बहुत सख्त है और हमेशा रूट के रूप में चलाया जाना है; इसका एकमात्र अपवाद तब है जब फाइलसिस्टम में है fstabऔर userविकल्प है। कार्यक्रम udisksctlसामान्य उपयोगकर्ताओं को डिवाइस माउंट करने की अनुमति देता है, उदाहरण के लिए udisksctl mount -b /dev/sda1(यह उपयुक्त माउंट बिंदु बनाता है /media/$USER/)। मैंने udisksctlएक लाइव सिस्टम का उपयोग करने की कोशिश नहीं की है, लेकिन एक लाइव सिस्टम पर एक हमेशा एक विशेषाधिकार प्राप्त उपयोगकर्ता है sudoजो बिना किसी पासवर्ड के साथ चलने में सक्षम है, इसलिए उपयोगिताओं की कोई आवश्यकता नहीं है जैसे udisksctlकि अन्यथा बहुत उपयोगी हैं
Zanna
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.