fsck: বেশিরভাগ পুঙ্খানুপুঙ্খ ডিস্ক চেক করার জন্য বিকল্প


12

আমি একটি পরিচিত সমস্যা সহ একটি ডিস্ক পেয়েছি (আমি জানি কারণ আমি যখন এটি ক্লোন করার চেষ্টা করি তখন dd gags)। তবে আমি যখন লাইভ সিডি দিয়ে বুট করি এবং আনমাউন্ট বিভাজনে fsck চালাই, তখন আমি এটি পেয়েছি:

ubuntu@ubuntu:~$ sudo fsck /dev/sdf1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
/dev/sdf1: clean, 227091/9625600 files, 12789815/38497756 blocks

এক মিলিসেকেন্ড পরে এটি বিশ্বাস করা কঠিন যে এটি একটি এমএসে পুরো হার্ড ড্রাইভটি পরীক্ষা করে দেখেছে।

আমার এসডিএফ 1 করা বা পুরো ফিজিকাল ডিস্ক এসডিএফ হওয়া উচিত কিনা তাও আমি নিশ্চিত নই। আমি যখন পুরো ড্রাইভটি চেষ্টা করি:

ubuntu@ubuntu:~$ sudo fsck /dev/sdf
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
fsck.ext2: Device or resource busy while trying to open /dev/sdf
Filesystem mounted or opened exclusively by another program?

যা আমি বুঝতে পারি না কারণ কোনও পার্টিশন মাউন্ট করা আছে বলে মনে হচ্ছে না (আমি সবেমাত্র একটি লাইভ সিডি থেকে বুট করে কমান্ডটি চালিয়েছি)।

সুতরাং আমার মূল প্রশ্নটি: আমি কীভাবে আমার সমস্যা ডিস্ক বিশ্লেষণের জন্য এক মিলিসেকেন্ডের চেয়ে বেশি ব্যয় করতে fsck (বা একটি আলাদা সরঞ্জাম যা আরও ভাল কাজ করতে পারে) পেতে পারি?

উত্তর:


14

প্রথমে, আপনি পার্টিশনে fsck চালানোর বিষয়ে ঠিক বলেছেন - fsck কেবল ফাইল সিস্টেমগুলিতে কাজ করে, পুরো ডিস্কগুলিতে নয়। আপনি ডিস্কের সাথে সমস্ত পার্টিশনের তালিকা পেতে পারেন fdisk -l /dev/sdd

আপনার ফাইল সিস্টেম টাইপটি সম্ভবত ext3 (বেশিরভাগ লিনাক্স ডিস্ট্রোজে ডিফল্ট), যার অর্থ এটি সাধারণত একটি fsck পাস করবে যতক্ষণ তার জার্নাল পরিষ্কার থাকে। fsck -fউপরে উল্লিখিত হিসাবে, একটি সম্পূর্ণ চেক জোর করা হবে।

তবে, আপনি যদি ডিস্কটিতে ত্রুটিগুলি পড়ে থাকেন তবে কোনও পরিমাণ fsck ডিডিকে সাহায্য করবে না - যেহেতু ডিডি সত্যিই ডিস্কের বিষয়বস্তু সম্পর্কে চিন্তা করে না।

ডিস্কটি পড়ার জন্য ডিডি পেতে এবং পড়ার ত্রুটিগুলি চালিয়ে যেতে, ব্যবহার করুন dd conv=noerror,syncযা পড়ার ত্রুটিগুলিতে অবিরত থাকবে এবং যখন কোনও পাঠ্য ত্রুটি থাকবে তখন কোনও ব্লকে নাল বাইট যুক্ত করা হবে।

আপনি ব্যাকআপটি শেষ করার পরে, fsck -fএটিটি পুনরায় চালাতে আপনার ক্লোন চালানো উচিত ।

অন্য টিপ: আপনি যদি কোনও ফাইলে পার্টিশনটি ব্যাকআপ করেন তবে আপনি এটির সাথে লুপব্যাক করতে পারেন mount -o loop filename.ext3 /mountpoint। এছাড়াও, বলুন যে আপনি 200 জি পার্টিশনটিকে 500 জি ড্রাইভে ক্লোন করছেন, আপনি তখন চালাতে পারবেন resize2fs /dev/sdx1(যেখানে এসডিএক্স আপনার নতুন ড্রাইভ, যেখানে একটি একক 500 জি পার্টিশন দিয়ে পার্টিশন করা হয়েছে), এবং ফাইল সিস্টেমটি 500 জি-র আকারে পরিবর্তন করা হবে।

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


আমি "ডিডি কুনু = নয়েরার, সিঙ্ক" চেষ্টা করেছিলাম, তবে ফলস্বরূপ ক্লোনড ডিস্কটি বুটযোগ্য ছিল না। কোনটি হতাশার কারণ, বুট ডিস্কটি ঠিকঠাকভাবে চালায়, fscks জরিমানা করে, তবে আমি এটি অন্য ডিস্কে ক্লোন করতে পারি না কারণ ডিস্কটির 1 টি ব্লক রয়েছে (যেখানে দৃশ্যত কোনও তথ্য নেই)। আমি আটকে আছে বলে মনে হচ্ছে ...
ফ্রেড হ্যামিল্টন

ভুলে যাবেন না যে ডিস্কটি বুট করতে না পারার অন্যান্য কারণও থাকতে পারে (বিভিন্ন ডিস্ক জ্যামিতি এবং এমবিআর / বুট লোডার সমস্যা)। আপনি যদি প্রথমে নিশ্চিত করতে পারেন যে নতুন ডিস্কের ফাইল সিস্টেমটি ঠিক আছে, তবে আপনি ইনস্টল সিডি থেকে রেসকিউ মোড ব্যবহার করে সিস্টেমে বুট করতে পারেন, GRUB বুটলোডার আপডেট করে ইত্যাদি e প্রথমে fsck -f / dev / sdx1 চালান, তারপরে মাউন্ট / dev / sdx1 / mnt দিয়ে ফাইল-সিস্টেম মাউন্ট করার চেষ্টা করুন - x- কে যথাযথ ড্রাইভ অক্ষর দ্বারা প্রতিস্থাপন করুন।
ক্রিস্টিয়ান

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

4
Ddrescue (বা dd_rescue + dd_rhelp) ডিডি ব্যবহার করা ভাল; এটি ত্রুটিগুলি পরিচালনা করার ক্ষেত্রে ত্রুটিগুলি পেয়েছে এমন খাতগুলি পুনরায় চেষ্টা করার বিষয়ে স্মার্ট। gnu.org/software/ddrescue/ddrescue.html kalysto.org/utilities/dd_rhelp/index.en.html Garloff.de/kurt/linux/ddrescue
ফ্রেইহাইট

1
রুট ext2, ext3 বা ext4 পার্টিশনের জন্য সর্বাধিক পুঙ্খানুপুঙ্খ ডিস্ক চেক (যদি সম্ভব হয় তবে সমস্ত সংশোধন সহ) নিম্নলিখিত রূপে কার্যকর করা হয়: (1) রেসকিউ মিডিয়া থেকে বুট করা (রুট পার্টিশনটি আনমাউন্ট করা উচিত), (2) রান e2fsck -f -cc -D -p। এটি মিডিয়াগুলির জন্য অ-ধ্বংসাত্মক পঠন-লিখন চেকের সাথে জোর করে চেক করে এবং সুরক্ষিতভাবে সমাধান করা যেতে পারে এমন সমস্ত সমস্যাগুলি মেরামত করে। এটি 2TB এইচডিডির জন্য কয়েক দিন সময় নিতে পারে ...
মিক্কো রেন্টালাইনেন

10

এটি আপনার ক্ষেত্রে প্রাসঙ্গিক নাও হতে পারে তবে ভেবেছিলাম আমি যেভাবেই এটি উল্লেখ করব:

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

এছাড়াও, কোনও ফাইল সিস্টেমের দ্বারা খারাপ ব্লকগুলি এড়ানোর জন্য e2fsckব্যবহার করতে পারেন badblockse2fsckম্যানুয়াল থেকে :

  -c     This option causes e2fsck to use badblocks(8) program to do a  read-
         only scan of the device in order to find any bad blocks.  If any bad
         blocks are found, they are added to the bad block inode  to  prevent
         them from being allocated to a file or directory.  If this option is
         specified twice, then the bad block scan will be done using  a  non-
         destructive read-write test.

এছাড়াও নোট fsck_hfs -sখারাপ ব্লকগুলির জন্য স্ক্যান করবে।
awiebe

5

আপনি fsck করতে -f বিকল্পটি চান (ফাইল সিস্টেম পরিষ্কার মনে হলেও জোর করে চেক করতে হবে))

আপনার একক ব্যবহারকারী মোডে fsck চালানো উচিত। লাইভ সিড্রাম বুট ছাড়াই এটি করার একটি সহজ উপায় হ'ল -F বিকল্পের সাহায্যে পুনরায় বুট করা।

shutdown -rF now 

ধন্যবাদ, তবে একটি প্রশ্ন: আমি যদি লাইভ সিডি ব্যবহার করে -F বিকল্পটি পুনরায় বুট করি তবে লাইভ সিডি কীভাবে জানতে পারে যে এটি চেকটি চালানোর কথা ছিল? এটি একটি সিডি, এর কোনও স্মৃতি নেই যা আমি সচেতন ...
ফ্রেড হ্যামিল্টন

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

প্রকৃতপক্ষে, এটি একক ব্যবহারকারী মোডে fsck করবে। আমি আমার উত্তর সম্পাদনা করেছি।
রিচার্ড হোসকিন্স

1
-Fজন্য তা পতাকাঙ্কিত shutdownসাধারণত আনুষ্ঠানিকভাবে নথিভুক্ত করা হয় না (দেখুন man shutdownএবং shutdown --helpও লক্ষ সেখানে না) তাই আপনি এটি কাজ বিশ্বাস করতে পারি না। কখনও কখনও এটি কোনও অপশন নেই। সরকারীভাবে রুট পার্টিশন স্ক্যান করার একমাত্র পদ্ধতি হ'ল বিকল্প মিডিয়া থেকে বুট করা।
মিক্কো রেন্টালাইনেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.