ইউনিক্স - দুর্ঘটনাক্রমে সমস্ত কিছুকে মূলের নীচে / পুরানোতে সরানো হয়েছে - সোলারিস 10


13

শিরোনাম যেমন রুট (/) এর নীচে মূল হিসাবে সমস্ত কিছু বা প্রায় প্রতিটি গুরুত্বপূর্ণ সোলারিস 10 মেশিনে / পুরানোতে সরানো হয়েছিল বলে says সুতরাং এখন চলমান কমান্ডগুলি চলাকালীন চেষ্টা করার সময় সাধারণ ত্রুটি Cannot find /usr/lib/ld.so.1(পরিবর্তিত $PATHএবং পরিবর্তনের চেষ্টাও করা হয়েছিল $LD_LIBRARY_PATH, $LD_LIBRARY_PATH_64এবং $LD_RUN_PATHসেগুলি রফতানি করে তবে এর কিছুই সত্যিকারের গ্রন্থাগারের পথকে বদলে দেয় বলে মনে হয় না)। গতকাল বেশ কিছু চেষ্টা করেছিল যা এমন কিছু খুঁজে পেতে পারে যা সাহায্য করতে পারে তবে এমন কিছুই খুঁজে পাওয়া যায় নি যা সোলারিস 10 এর জন্য লাইব্রেরির পথ পরিবর্তন করবে যা সম্ভবত অন্যথায় 10 এর crleপরে চালানো যায় না Cannot find /usr/lib/ld.so.1

লিনাক্সের জন্য প্রচুর মূল বা / usr / বিন পুনরুদ্ধার টিপস এবং পাওয়া গেছে তবে সোলারিস 10 / ইউনিক্স সম্পর্কিত তথ্যের জন্য যে তথ্যটি ছিল তা খুব তাড়াতাড়ি এবং খুব বিরল নয়।

চালানো যাবে না cp, ln, mkdirবা mvথেকে Cannot find /usr/lib/ld.so.1। মেশিনে অন্য সেশনগুলির সাথেও লগ ইন করতে পারে না। যদিও একটি অধিবেশন এখনও শেষ যা কোনটি ব্যবহার করা যেতে পারে এবং উইন্ডোটি আটকে রয়েছে while true; do date; echo hej 1234567; done। আমরা সোলারিস বুট সিডি ব্যবহারের সমাধান এবং ইউএসবি ড্রাইভে একটি লিনাক্স ডিস্ট আলোচনা করেছি। আমরা হার্ড ডিস্ক ডিস্কগুলি অন্য একটি রাকে স্যুইচ করার সমাধানটি নিয়ে আলোচনা করেছি।

/.../static/.../mvসমাধান পরীক্ষা করা হয়েছে কিন্তু এটি কাজ করে নি।

কমান্ড এখনও ব্যবহার করা যেতে পারে হয় (আরো যে কমান্ড ব্যবহার করা যেতে পারে হতে পারে): echo, <, >, >>, |, pwd, cd

ছাড়া ডিরেক্টরি বা ফোল্ডার তৈরি করার কোনও উপায় আছে কি mkdir? কোনো উপায় আছে ব্যবহার করতে হয় echoএবং >বা echoএবং >>পুনঃস্থাপন /usr/lib/ld.so.1? আমি জানি যে /usr/lib/ld.so.1কমান্ডগুলি কাজ করতে পারে তার চেয়ে বেশি সম্ভবত পুনরুদ্ধার করা দরকার।

পড়ার জন্য আপনাকে অনেক ধন্যবাদ এবং একটি খুব সুন্দর দিন =)


2
পুরানো / নীচে জিনিস সরানোর জন্য কোন আদেশ ব্যবহার করা হয়েছিল?
স্কাইবা

সোলারিস স্ট্যান্ডার্ড mv। বা আরো সঠিকভাবে: shopt -s extglob; mv !(old) /old
উত্সর্গ

1
এই মুহুর্তে কী শেল চলছে? কিছু শেলের
ইনবিল্ড

lnযদি এটি কাজ করে তবে আপনি এটির সাথে এটি ঠিক করতে পারেন।
ডেভিড শোয়ার্টজ

2
"/.../Static/.../mv সমাধান পরীক্ষা করা হয়েছে তবে এটি কার্যকর হয়নি" " কি হলো? এটি একটি লোডার ত্রুটি দিয়েছে? ঠিক কি "কাজ হয়নি"? staticআপনি যদি অস্থায়ী মিডিয়া বুট করতে না চান তবে বাইনারিগুলি ঠিক এই বিভাগের সমস্যার জন্য রয়েছে।
তি স্টারগা

উত্তর:


19

আপনার যদি আর শেলটি রুট হিসাবে চলমান না থাকে তবে আপনাকে উদ্ধার মিডিয়াতে পুনরায় বুট করতে হবে। রুট ফাইল সিস্টেম রিড-রাইটিং মাউন্ট করতে সক্ষম হিসাবে যে কোনও কিছু করা সম্ভব।

আপনি যদি এখনও কমান্ডগুলি রুট হিসাবে চালাতে পারেন তবে সমস্ত কিছুর কোপ্যাসেটিক। LD_LIBRARY_PATHমৌলিক সিস্টেম সরঞ্জামগুলি দ্বারা ব্যবহৃত লাইব্রেরি ধারণকারী ডিরেক্টরিগুলিতে নির্দেশ করতে পরিবেশের পরিবর্তনশীল সেট করুন । এটি কমপক্ষে /usr/libএকটি 32-বিট সোলারিসে, /usr/lib/64একটি 64-বিট সোলারিসে, সম্ভবত অন্যান্য ডিরেক্টরিতে (চেক করার জন্য আমার এখন সোলারিস 10 এ অ্যাক্সেস নেই)। এক্সিকিউটেবল চালনার জন্য এটি রানটাইম লিঙ্কারের সাথে উপস্থাপন করুন : /usr/lib/ld.so.1(32-বিট এক্সিকিউটেবলের জন্য) বা /usr/lib/64/ld.so.1(a৪-বিট এক্সিকিউটেবলের জন্য) - এখন সরানো হয়েছে /old। সুতরাং আপনি যেমন কিছু সঙ্গে পুনরুদ্ধার করতে সক্ষম হওয়া উচিত:

LD_LIBRARY_PATH=/old/usr/lib
export LD_LIBRARY_PATH
/old/usr/lib/ld.so.1 /old/usr/bin/mv /old/* /

লোডার স্মার্ট ব্যবহার। যদি পুরো হায়ারার্কি সরানো না /oldহয় তবে পেশেকে নিজের মন্তব্যে আমার মন্তব্যটি এখানেও বৈধ। mvব্যবহার করা উচিত নয় কিন্তু একটি কমান্ড যে মত বিদ্যমান অনুক্রমের সংরক্ষণ pax, tarএবং পছন্দগুলি।
jlliagre

1
আপনার ধৈর্য এবং এটি লেখার জন্য সময় দেওয়ার জন্য আপনাকে অনেক ধন্যবাদ। এটা এখন মত কমান্ড চলমান কাজ /old/usr/lib/ld.so.1 /old/usr/bin/mvএবং /old/usr/lib/ld.so.1 /old/usr/bin/cpইত্যাদি। আমি যা করতে পারি তা দেখতে পাচ্ছি, এখন সমস্যাটি হ'ল আমি স্থানের বাইরে আছি তবে আমি এটি ঠিক করতে সক্ষম হতে পারি।
অনুগ্রহ

@ জনসমর্থন খুব খারাপ আপনি এবং গিলস আমার মন্তব্য বিবেচনা করেন নি ...
jlliagre

1
ইয়া আল্লাহ! আমি প্রথম ফিরে সবকিছু সরানো পরিচালিত /old/usr/lib/ld.so.1 /old/usr/bin/mvএবং /old/usr/lib/ld.so.1 /old/usr/bin/cpকিন্তু কোন স্থান তাই ব্যবহার করা যায় নি /old/usr/lib/ld.so.1 /old/usr/bin/cp। এবং তারপরে সম্পাদনা $PATHএবং তারপরে ফোল্ডারে mvপরিবর্তিত ব্যবহার করে ফোল্ডার $PATH। এখন এটি আবার ফিরে গেছে যাতে আমি আবার লগ ইন করতে পারি এবং df -h এবং সমস্ত কিছু টাইপ করতে পারি। আপনাকে অনেক সবাইকে ধন্যবাদ। সত্যিই, আপনাকে ধন্যবাদ জিলস! ধন্যবাদ স্ট্যাক এক্সচেঞ্জ!
উত্সর্গ

1
LD_LIBRARY_PATHসোলারিসে সেট করার কিছু বিপদ রয়েছে যদি আপনার এটি সেট করা দরকার হয় তবে আপনি 32- এবং 64-বিট এক্সিকিউটেবল উভয়ই চালাতে পারেন। LD_LIBRARY_PATHসোলারিসে উপলভ্য যেগুলির 32- এবং 64-বিট নির্দিষ্ট সংস্করণ ব্যবহার করা আরও ভাল । এই ক্ষেত্রে: LD_LIBRARY_PATH_32=/old/usr/libএবং LD_LIBRARY_PATH_64=/old/usr/lib/64দেখুন ld.so.1man পৃষ্ঠা : "প্রত্যেক এনভায়রনমেন্ট ভেরিয়েবল একটি _32 বা _64 প্রত্যয় সঙ্গে উল্লেখ করা এই এনভায়রনমেন্ট ভেরিয়েবল নির্দিষ্ট, যথাক্রমে 32 বিট বা 64 বিট প্রসেস করে তোলে।।"
অ্যান্ড্রু হেনেল

16

কেবল শেল বিল্টিন কমান্ডের সাহায্যে ডিরেক্টরি তৈরি বা বাইনারি ফাইলগুলি অনুলিপি করার কোনও উপায় নেই (যদিও গিলস তার জবাবে একটি স্মার্ট সম্ভাব্য কর্মের বর্ণনা দেয় )।

আপনার সর্বোত্তম বিকল্পটি হ'ল সোলারিসকে একটি বাহ্যিক মিডিয়াতে (ডিভিডি, ইউএসবি স্টিক) বুট করা, ফাইল সিস্টেম (গুলি) মাউন্ট করা বা আমদানি করা এবং এই জাতীয় কিছু দিয়ে বিশৃঙ্খলা ঠিক করা:

  • একটি সোলারিস ইনস্টলেশন ডিস্ক বুট করুন এবং একটি শেল চালানোর জন্য নির্বাচন করুন।

  • পুরাতন রুট (এবং অন্যান্য সব ফাইল সিস্টেম যদি থাকে) মত কিছু ডিরেক্টরি অধীনে মাউন্ট /mntবা /a। সোলারিস বুট ডিস্কটি আপনাকে এটি করতে সহায়তা করতে পারে যখন এটি বিদ্যমান ফাইল সিস্টেমগুলি সনাক্ত করে।

  • এই কমান্ডের সাহায্যে ফাইলগুলি তাদের মূল অবস্থানে ফিরিয়ে দিন (ধরে নিচ্ছেন যে সমস্ত কিছু মাউন্ট করা আছে /mnt):

    cd /mnt/old
    find . -depth | cpio -pdlmPV@ /mnt
    
  • আপনার সিস্টেমটি পুনরায় বুট করুন

    init 6
    

আপনি যদি জেডএফএস ব্যবহার করছেন এবং সাম্প্রতিক স্ন্যাপশটটি উপস্থিত রয়েছে তবে /oldডিরেক্টরিটি অন্য কোথাও ব্যাক আপ করার পরে শেষ স্ন্যাপশটে ফিরে যাওয়াও একটি বিকল্প হতে পারে।


দুর্দান্ত উত্তর। রেসকিউ ইউএসবিতে বুট করুন, ফাইল সিস্টেমটি মাউন্ট করুন এবং তারপরে এমন কিছু করুনmv /mountpoint/old/* /mountpoint
পেরেশকে

1
@ পেছকে ধন্যবাদ, যদিও আপনার প্রস্তাবিত mvআদেশটি অন্ধভাবে চালানো আমার পরামর্শ হবে না। ওপি লিখেছিল "সবকিছু বা প্রায় সবকিছু "। দ্বিতীয় ক্ষেত্রে, সরানো এখনও বিদ্যমান ডিরেক্টরিগুলি ভেঙে দেবে। আমি সম্ভবত মত একটি ইউটিলিটি ব্যবহার tar, paxঅথবা cpioগন্তব্য ডিরেক্টরি অনুক্রমের সংরক্ষণে।
jlliagre

দ্রুত সাড়া দেওয়ার জন্য আপনাকে অনেক ধন্যবাদ এবং আপনার প্রতিক্রিয়াগুলির জন্য আপনাকে অনেক ধন্যবাদ। আমি আগামীকাল এই চেষ্টা করতে পারেন।
উত্সর্গ

সম্ভাব্য স্ন্যাপশট (জেডএফএস বা ইউএফএস) এর সাথে যুক্ত, আপনি যদি লাইভ আপগ্রেড ব্যবহার করেন তবে বিকল্প বিইতে বুট করতে পারেন। lustatus এবং এখনও আতঙ্কিত না। সমস্ত ডেটা এখনও ডিস্কে রয়েছে on
স্লিপওয়েসেল

0

সোলারিস স্ট্যাটিক মৌলিক ইউটিলিটি (এর তৈরী করে অন্তর্ভুক্ত cp, ln, mv, rcp, এবং tarমধ্যে) /usr/sbin/staticআপনি প্রাপ্যতা সঙ্গে কোনো সমস্যা মেরামত করতে ব্যবহার করতে পারেন /usr/lib/ld.so.1যে প্রতিরোধ নিয়মিত পরিবর্তনশীল সংযুক্ত ব্যবহারের /usr/binসংস্করণ।

কোন স্ট্যাটিক হয় mkdirপ্রদান করা, কিন্তু আপনি স্ট্যাটিক ব্যবহার করতে পারেন lnসিমবলিক লিঙ্ক যাই হোক না কেন ডিরেক্টরির রয়েছে lib/ld.so.1যেমন স্থানে /usrঅস্থায়ীভাবে, এবং তারপর মান ব্যবহার mkdirতৈরি করতে যাই হোক না কেন ডিরেক্টরি আপনি প্রয়োজন। স্ট্যাটিক ব্যবহার করে ইতিমধ্যে বিদ্যমান ডিরেক্টরিগুলির নাম পরিবর্তন করতে পারেন mv


এটি কমপক্ষে সোলারিস ২.২.১-এর মতো ফিরে গেছে, যেখানে আমি দেখতে পেয়েছি যে ld.so.1আপনি গিলসের উদাহরণে যেমন ম্যানুয়ালি চালানোর চেষ্টা করেন তবে স্টকটি
সিগফল্ট হয়
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.