আমি দুর্ঘটনাক্রমে আমার পুরো সার্ভারটি জিপ করেছি


10

ঠিক আছে যদি কেউ godশ্বর খেলতে চান এবং অলৌকিক কাজ করতে চান তবে আমি নীচে।

সুতরাং, আমাকে এমন একটি স্ক্রিপ্ট তৈরি করার কাজ দেওয়া হয়েছিল যাতে 6 মাসেরও বেশি পুরানো ফাইলগুলি খুঁজে পাওয়া যায়, সেগুলিকে জিপ করে সেগুলি মুছে ফেলা হয়। টিহস লিপি তৈরির পথে আমি এটি চালিয়েছি:

find / -type f -mtime -400 ! -mtime -180 | xargs gzip blablabla

এবং এটি প্রতিটি একক ফাইলকে .gz এক্সটেনশান দিয়েছে। এখন আমি খেয়াল করার সাথে সাথে এটিকে বাতিল করে দিয়েছি তবে খুব দেরি হয়ে গেছে। কমান্ডটি শেষ হওয়ার পরে আমার কোনও ব্যাশ কমান্ড কাজ করবে না কারণ $ PATH পরিবর্তনশীল নিজেই খালি হয়ে গেছে। সমস্যাটি বোঝার আগে আমি প্রচুর জিনিস চেষ্টা করেছিলাম।

সুতরাং আমি এখনও বুট করতে অক্ষম সমস্ত কিছু আনজিপিং করছি ter আমি এটির জন্য অনলাইন নির্দেশাবলী অনুসরণ করার পরেও তা উদ্ধার করতে সক্ষম হয়েছি:

root (hd0,0)
setup (hd0)
kernel (hd0,0)/boot/vml[...]
initrd (hd0,0)/boot/initrd.im[...]

আমার লিনাক্স আংশিকভাবে বুট করার পরে তবে আমাকে নিম্নলিখিত ত্রুটিগুলি দেয়:

Begin : Running /scripts/init-bottom ... mount : mounting /dev on /root/dev failed : No such file or directory
mount: mounting /sys/ on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed : No such file or directory
Target filesystem doesn't have requrested /sbin/init.
No init found. Try passing init= bootarg.

আমি ফাইল সিস্টেমটি মেরামত করার চেষ্টা করেছি, আমি 3 টি ভিন্ন লাইভসিডি / রেসকিউ ডিস্ক থেকে বুট করেছি, আমি 2 টি ভিন্ন ডিক্সিক থেকে বুট-মেরামত চালিয়েছি। আমি জোর করে fscks করেছি ...

আমি সত্যিই ধারণাগুলি থেকে দূরে আছি এবং কমপক্ষে বুট করার জন্য এই সার্ভারটি পাওয়ার দরকার যাতে আমি আমার এসকিউএল ডাটাবেসগুলি পুনরুদ্ধার করতে পারি। আমি সাহায্যের জন্য মরিয়া, আমি প্রয়োজন হলে প্রদানও করব।

কোনও সম্ভাব্য সমাধানের জন্য আমি সারাদিন 3 দিন ধরে ফোরামে লুকিয়ে ছিলাম এবং এখনও আমি একই পয়েন্টে আছি ... দয়া করে সাহায্য করবেন?


3
যদি তারা মাইএসকিএল ডিবি হয় তবে আপনাকে অগত্যা বুট করার দরকার নেই; সেক্ষেত্রে আমি ড্রাইভকে ক্রীতদাস হিসাবে মাউন্ট করার চেষ্টা করতাম এবং / var / lib / mysql ডিরেক্টরিতে অনুলিপি
করতাম

8
নতুন স্টোরেজ ডিভাইসে ইনস্টল করুন পরিষ্কার করুন। পুরানো ড্রাইভ মাউন্ট, প্রয়োজনীয় হিসাবে ডেটা স্থানান্তর। আমি বাজি ধরব যে মেরামত করা প্রচেষ্টাটির পক্ষে উপযুক্ত হবে না।
জোরডাচি

7
এটি সেই জায়গা যেখানে আপনি ব্যাকআপ থেকে পুনরুদ্ধার করেন। এবং মনে রাখবেন যে পরের বারে রুট ব্যবহারকারী হিসাবে অ-সুবিধামুক্ত ক্রিয়াগুলি না ঘটাতে হবে।
ম্যাগেলান

1
because of version differences,ঠিক একই সংস্করণ দিয়ে আবার ইনস্টল করুন। we have corruption issues,আপনার ডেটা দূষিত হতে পারে। সিস্টেমটি মেরামত করা যাতে এটি বুটযোগ্য হয়, ডেটা ট্র্যাশ করা থাকলে আপনাকে সাহায্য করবে না। আপনার জিজেপ কমান্ড যদি আপনার ডাটাবেস ফাইলগুলি সংকুচিত করে থাকে যখন ডেটাবেসটি দুর্নীতিগ্রস্থ হচ্ছিল অনিবার্য বলে মনে হয়।
জোরডাচি

5
আপনি যদি এই কমান্ডগুলি চালনার সময় আপনার ডিবি সফ্টওয়্যারটি চলমান থাকে, আপনি সম্ভবত ডিবিগুলি পুনরুদ্ধার করতে সক্ষম হবেন না। জিজিপ আনন্দের সাথে ফাইলটি জিপ আপ করে ফেলবে, তারপরে এটি এটিকে লিঙ্কযুক্ত করে। তবে আপনার ডিবি সফ্টওয়্যারটিতে এখনও ফাইলটি খোলা ছিল এবং এটি এতে পরিবর্তনগুলি সম্পাদন করছে। এটি বন্ধ হওয়ার সাথে সাথেই ফাইলটি সরিয়ে ফেলা হয়েছিল।
toppledwagon

উত্তর:


8

এটি নির্ভর করে আপনি কোনও লাইভসিডি থেকে পার্টিশনগুলি মাউন্ট করতে সক্ষম হওয়ার জন্য ফাইল সিস্টেমগুলি যথেষ্ট পরিমাণে মেরামত করা হয়েছে কিনা তার উপর নির্ভর করবে। সিস্টেমটি বুট করার চেষ্টা করে বিরক্ত করবেন না। প্রথমে পার্টিশনগুলি মাউন্ট করুন এবং সমস্ত .gz ফাইল আনজিপ করুন। এটি আপনাকে আর ডি এবং সিস্টেম বাইনারিগুলির কাজের অনুলিপিগুলি দেবে। তারপরে আপনি বুট সেক্টরটি মেরামত করতে গ্রাব ব্যবহার করতে পারেন। তারপরে একক ব্যবহারকারী মোডে বুট করুন এবং আবার ফাইল সিস্টেমটি fsck করুন। যদি এটি কাজ করে তবে আপনার একটি চলমান সিস্টেম থাকবে। আপনার কাছে আনজিপড ফাইলগুলির একটি গুচ্ছও থাকবে (ম্যান পেজগুলির মতো) যা সত্যিই জিপ করা উচিত, তবে এটি একটি বুট না করা সিস্টেমের চেয়ে ভাল।

আপনি যদি লাইভসিডি থেকে পার্টিশনগুলি মাউন্ট করতে না পারেন, তবে দুর্ভাগ্যক্রমে আপনার ভাগ্য নেই। আপনার সিস্টেমে কিছুই পুনরুদ্ধার করবে না।


1
এটি আসলে মনোমুগ্ধকর মতো কাজ করেছিল ... এর জন্য আমি আপনাকে যথেষ্ট ধন্যবাদ দিতে পারি না! মাইএসকিউএল বুট করবে না তবে আমি এখনও একটি - ফোর্স fsck করিনি, আশা করি এটি ঠিক করে দেবে! ধন্যবাদ
ডেক্সিরিয়ান

1
অসাধারণ. এটা খুশী হয়েছে।
মাইকেল মার্টিনেজ

9

প্রথম যে জিনিসটি আমি চেষ্টা করেছিলাম তা হ'ল লাইভসিডি পরিবেশ চালানো এবং কেবল সমস্ত কিছু উনজিপ করার চেষ্টা করা, এই আশায় যে এটি সিস্টেমটিকে বুটযোগ্য অবস্থায় ফিরিয়ে আনবে। দ্রষ্টব্য: মূল জিজিপ প্রক্রিয়াটিতে বাধা থাকলে আমি সম্ভাব্য ডেটা দুর্নীতির বিষয়ে উদ্বিগ্ন।

অন্যথায় আমি ডিবিটিকে একটি নতুন সিস্টেমে স্থানান্তরিত করার চেষ্টা করব যেমনটি অন্যরা পরামর্শ দিয়েছে কিন্তু আপনি যেমন মুখোমুখি হয়েছিলেন সেখানে শ্রম নিবিড় নির্ভরতা এবং কনফিগারেশন সমস্যা থাকতে পারে যা স্বতন্ত্রভাবে সমাধানের প্রয়োজন হবে।


তাত্ক্ষণিক প্রশ্ন: আমরা পুরানো এসকিউএল ডাটাবেস সার্ভার সম্পর্কে অনিশ্চিত এবং নতুন সার্ভারটি একটি ভিন্ন লিনাক্স ডিস্ট্রো ব্যবহার করছে। নতুন সার্ভারটি WHOS এর সাথে CentOS চলছে এবং পুরানো সার্ভারটি হয় দেবিয়ান / আনবন্টু। সুতরাং আমার প্রশ্নটি হল, আমি কীভাবে কার্যকরভাবে আমার এসকিউএল ডেটাবেসগুলি দুর্নীতি ছাড়াই এবং কী করতে পারি না?
ডেক্সিরিয়ান

6

এখানে সাধারণ sensকমত্য, আপনার কেবলমাত্র একটি ওয়ার্কিং সিস্টেমে ডিস্ক মাউন্ট করা উচিত এবং আপনার ফাইলগুলি উদ্ধার করা উচিত, ভুল নয়। এটি করার মতো বুদ্ধিমান কাজ। তবে অন্য উপায়টি আরও মজাদার এবং খুব শিক্ষামূলক। অগোছালো পরিস্থিতি থেকে বেরিয়ে আসার পথে আমি অনেক কিছু শিখেছি যেখানে অন্যান্য লোকেরা স্ক্র্যাচ থেকে সরে এসে পুনরায় ইনস্টল করে। (এমন কোনও সার্ভারে নয় যা অন্যান্য লোকেরা যদিও এর উপর নির্ভর করে ...)

যাইহোক, এখন পর্যন্ত আপনার কাছে একটি চালিকা (আরআরআরডি) রয়েছে যা চালায়। এটি একটি ভাল শুরু। তবে ডিআইডি-তে হ্যান্ডঅফটি সম্পূর্ণ করতে পারে না কারণ থিম এখন init.gzসম্ভবত? যে কোনও অগ্রগতি করতে, আপনার লিনাক্স বিতরণটি ঠিক কী তা জানতে সাহায্য করবে, তাই জরুরী ব্যবহারের জন্য এর ইরামরামগুলিতে কী কী সরঞ্জাম উপলব্ধ রয়েছে তা আমরা সন্ধান করতে পারি।

আপনি যে ত্রুটি বার্তাগুলি উপস্থাপন করেছেন সেগুলি দেখে মনে হচ্ছে তারা দেবিয়ান'র ইন্রামফ থেকে এসেছে। যদি এটি ডেবিয়ান হয়, তবে (initramfs)শেষ ত্রুটির পরে আপনার পরবর্তী লাইনে একটি শেল প্রম্পট পাওয়া উচিত ছিল। যদি আপনি তা করেন তবে এই ব্যর্থ মাউন্টগুলির সাথে আপনার কী চলছে তা খতিয়ে দেখা উচিত। হয় /root/devঅনুপস্থিত? ( /rootএটি যেখানে আপনার সাধারণ রুট এফএসটি ইন্ট্রামফ চলাকালীন মাউন্ট করা উচিত)

আপনি যদি শেল প্রম্পট না পেয়ে থাকেন তবে কী ঘটেছিল No init found. Try passing init= bootarg.তা আকর্ষণীয় হবে। এমনকি যদি এটি জ্বলজ্বলে কার্সার ছাড়া কিছু নাও ছিল তবে এটি একটি সূত্র। যদি এটি সম্পূর্ণ হিমশীতল মনে হয়, তবে ম্যাজিক সিসার্ক বা সিটিআরএল + স্ক্রোললক ব্যবহার করে কী কী প্রক্রিয়াগুলি এখনও রয়েছে তার কিছু তথ্য নেওয়ার চেষ্টা করুন।

দেবিয়ান ইরাম্রামগুলি আপনাকে কয়েকটি বিশেষ ল্যান্ডমার্কে শেলটির অনুরোধ break=করতে কার্নেল কমান্ড লাইনে একটি প্যারামিটার যুক্ত করে দেয়। উদাহরণস্বরূপ, Running /scripts/init-bottomলাইনের আগে শেল পেতে , ব্যবহার করুন break=bottom

পাশাপাশি: আমি জানি না findকমান্ডটি কীভাবে প্রতিটি ফাইল gzip করতে পারে ... 180 এবং 400 দিনের মধ্যে পুরানো ফাইলগুলি নির্বাচনের উদ্দেশ্যে এটি আমার কাছে সঠিক দেখাচ্ছে।


আমি যখন / রুটের নীচে একটি এলএস করি তখন কিছুই পাওয়া যায় না। সুতরাং আমি এটি নিতে পারি fs মাউন্ট বুট উপর ঠিক না? আমি কোথায় এটি পরিবর্তন করতে পারি?
ডেক্সিরিয়ান

1
@Dexirian যাতে আপনি শেল প্রম্পটে (আপনি ব্যবহার করতে হবে না পেলে break=bottom?) ... হ্যা, সময় এটি মাউন্ট চাচ্ছে দ্বারা /root/devএবং /root/procএবং /root/sys, /rootবাস্তব রুট ফাইল সিস্টেম হতে হবে। এটি মাউন্ট করতে ব্যর্থ হওয়া সম্পর্কে আগে অবশ্যই একটি ত্রুটি বার্তা ছিল। আপনি কি root=কার্নেল কমান্ড লাইনে একটি প্যারামিটার অন্তর্ভুক্ত করেছেন ? আমার স্মৃতিটি এই মুহুর্তে কিছুটা অস্পষ্ট তবে আমি মনে করি যে root (hd0,0)এটি সমর্থনকারী ফাইলগুলি কোথায় সন্ধান করতে পারে তা কেবল গ্রাবকে বলে এবং আপনার এখনও কার্নেলটি আলাদাভাবে বলতে হবে যে মূলটি কোথায়।

হ্যাঁ আমি রুট =, কার্নেল = আরআরডি =, এবং সেটআপ = ব্যবহার করেছি, আমাকে ব্রেক = নীচে ব্যবহার করতে হবে না। এবং আমি কোনও পূর্বের ব্যর্থ মাউন্ট বার্তাটি খুঁজে পাইনি, কারণ এটি সত্যিই দ্রুত স্ক্রল করে
ডেক্সিরিয়ান

@ ডেক্সিরিয়ান কি কনসোল স্ক্রোলব্যাক পাওয়া যায়? Shift + PgUp। এবং আপনি কি তাৎক্ষণিকভাবে এটিকে (initramfs) কিছুটা মাউন্ট করতে পারেন mount -r /dev/sda1 /root? cat /proc/partitionsকি ডিস্ক উপলব্ধ আছে তা দেখতে।

1
সিস্টেম প্রশাসনের বিশ্বে স্বাগতম!
মাইকেল মার্টিনেজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.