यदि आपका सिस्टम busyboxस्थापित हो गया है, तो आप इसका उपयोग चीजों को वापस करने के लिए कर सकते हैं।
busyboxएक बाइनरी है जिसमें बहुत सारी मानक उपयोगिताओं का निर्माण किया गया है। हालात इस तरह के रूप mv, sh, ls, आदि
पावेल के उत्तर पर आपकी टिप्पणी से, ऐसा लगता है कि सब कुछ समाप्त हो गया /var। आप करने की कोशिश कर सकते हैं /var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /। आपके अधिकांश सिस्टम को फिर से चालू होना चाहिए। कुछ निर्देशिकाएं ऐसी हैं, /tmpजो भी मौजूद हैं /var/tmp, इसलिए आप उन्हें स्थानांतरित नहीं कर सकते। उम्मीद है कि वे वही हैं जिनके mvबारे में शिकायत की गई थी और वे अकेले रह गए थे।
जड़ खोलना
आपने यह भी उल्लेख किया है कि आपने अपना रूट शेल खो दिया है, और यह suआपको ld-linuxलाइब्रेरी त्रुटि दे रहा है । आप निम्नलिखित का उपयोग करने में सक्षम हो सकते हैं:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
नोट: यह प्रयास करने पर, यह काम नहीं करता है। इसका कारण यह है है suमें कई फ़ाइलों की आवश्यकता है /etc( passwd, pam.d, और अन्य)। यदि /etcअभी भी बरकरार थे, तो यह सफल होने का एक अच्छा मौका होगा।
बिजीबॉक्स के बिना
यदि आपके पास व्यस्त बॉक्स उपलब्ध नहीं है, तो आप उसी ld-linux ट्रिक का उपयोग करने में सक्षम हो सकते हैं su:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
एक लाइव सीडी से
जैसा कि टिप्पणियों में चर्चा की गई है, यदि आपने रूट शेल खो दिया है, तो आप बहुत फंस गए हैं। मूल रूप से इसे ठीक करने के लिए आपको रूट विशेषाधिकारों की आवश्यकता होती है। वहां पहुंचने का एकमात्र तरीका यह है कि आपकी अनुमतियों को बढ़ाने suया sudoबढ़ाने के लिए एक उपयोगिता हो (दोनों इस बिंदु पर गैर-कार्यात्मक हैं), या पहले से ही रूट के रूप में चल रहे एक अन्य कार्यक्रम को हाईजैक करें (जो चल रहा है, संभव नहीं है) के आधार पर।
यह लाइव सीडी होने का एकमात्र विकल्प है। एक बार एक लाइव सीडी (या लाइव यूएसबी, या जो भी) में बूट किया गया, बस रूट वॉल्यूम को माउंट करें, और प्रभावित निर्देशिकाओं को /varवापस अपने मूल घर में स्थानांतरित करें /।
जो हुआ उसका सार
folder/*इस तरह के रूप में कुछ folder/fooऔर करने के लिए विस्तार किया जाएगा folder/bar।
/*जैसे कुछ के लिए विस्तार किया जाएगा /bin /lib32 /lib64 /etc /home /root /var। यह देखते हुए कि /varअंतिम वस्तु है।
इसलिए जब शेल ने उन सभी ग्लब्स का विस्तार किया, तो यह कुछ इस तरह से चलता था:
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
जैसा /varकि सूची में अंतिम आइटम है, इसमें सब कुछ स्थानांतरित हो गया।
क्यों /var/bin/suत्रुटियों के साथ?/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
लिनक्स में लगभग सभी बायनेरिज़ गतिशील रूप से जुड़े हुए हैं ld-linux। ld-linuxपुस्तकालय एक बाइनरी द्वारा आवश्यक अन्य पुस्तकालयों को लोड करने के लिए जिम्मेदार है। आपके सिस्टम पर यह रहता है /lib64/ld-linux-x86-64.so.2। चूंकि यह निर्देशिका स्थानांतरित हो गई है, इसलिए किसी भी गतिशील रूप से जुड़े निष्पादन योग्य काम नहीं करेगा।
व्यस्त बॉक्स कार्य कारण है कि व्यस्त बॉक्स सांख्यिकीय रूप से जुड़ा हुआ है। यह उपयोग नहीं करता है ld-linux।
/var/bin/suसीधे नहीं चल सकते ?