আমি কীভাবে একটি বিটিআরএফএস পার্টিশন পুনরুদ্ধার করব যা মাউন্ট হবে না?


13

12.04-র জন্য ইনস্টলেশনটি ব্যর্থ হয়ে পড়েছিল, এবং সমাধানটি ছিল যে আমি ইনস্টলারের বিটিআরএস বিভাজনটিকে উপেক্ষা করেছিলাম যা আমি আগে / হোম ব্যবহার করে আসছি।

এখন এটি ইনস্টল হয়ে গেছে, আমি এটি বিটিআরএফস পার্টিশনটি মাউন্ট করার চেষ্টা করছি যাতে আমি আমার GB০ জিবি ফাইল অ্যাক্সেস করতে পারি। এটি মাউন্ট করবে না এবং বিটিআরএফএসকে নিম্নলিখিত তিনটি লাইন দিয়ে ত্রুটিগুলি বেরিয়ে যাবে:

parent transid verify failed on 31302336512 wanted 62455 found 62456
parent transid verify failed on 31302336512 wanted 62455 found 62456
parent transid verify failed on 31302336512 wanted 62455 found 62456

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

উত্তর:


10

সহজ রাস্তা

btrfs-zero-log /dev/sda5

আপনার এই সমস্যাটি হচ্ছে কারণ একটি লেনদেন (লিখুন বা মুছুন) জার্নাল লগে আটকে আছে এবং ডিস্ক এটির সাথে মেলে না।

কিভাবে এটা কাজ করে:

সুতরাং যখন ডেটা 1 ম জার্নালে লেখা হয় তার পরে ডিস্কে লেখা হয় (বা একই সাথে, তবে জার্নাল কেবল আসন্ন লেখার সম্পর্কে মেটাডেটা সংরক্ষণ করে - নিশ্চিত নয় ... সেই অংশটি সম্পর্কে আরও গবেষণা প্রয়োজন) ...

যাইহোক আপনি যদি এই লেখার মাঝখানে সিস্টেমটি মুছে ফেলেন / মুছুন বা সিস্টেমটিকে কিছু হিকআপ করুন (আপনার ইউআরটিফের মাউন্ট পয়েন্টটি ধারণ করে এমন ইউএসবি বাতিল করে দিন), তবে যখন এটি ফিরে আসে যে মাউন্টটি কাজ করবে না এটি ব্যর্থ হবে ( dmesg এবং btrfsck হবে) আপনাকে আরও বিশদে ত্রুটিগুলি দেখান) ...

ডেমসগের দিকে তাকালে আপনি সেই একই ট্রানজিড মেসেজ দেখতে পাবেন।

আপনি এরকম কিছু দেখতে পাবেন:

parent transid verify failed on 109973766144 wanted 1823 found 1821

এর অর্থ হল যে বিটিআরএফস 1826 (এটি জার্নালে ছিল) বদলে চেয়েছিল তবে ডিস্কে এটি 1821 দেখেছিল So আমি ব্যক্তিগতভাবে এখানে কেবল একটি 2 টি লেনদেনের কারণে একটি ব্রিটফ-জিরো-লগকে ঝুঁকিপূর্ণ করব। তবে এটি যদি আপনার একমাত্র ডেটা হয় তবে ১০০% নিরাপদ থাকুন (আপনার কাছে যদি সমালোচনামূলক ডেটা থাকে তবে এটির কেবল কখনও 1 কপি থাকা উচিত নয়, সর্বদা নিরাপদ অন্য স্থানে একটি অনুলিপি / ব্যাকআপ থাকা উচিত - বিটিআরএফএস নির্মাতাদের দোষ দেওয়া ব্যাকআপ না রাখার দায় নিজস্বতার অভাবে ব্যক্তির বিরুদ্ধে ন্যায়সঙ্গত করুন - বিটিআরএফএস ব্যাকআপ সমাধান নয়, এটি একটি ফাইল সিস্টেম - এটির অনুলিপি ছাড়া অন্য কোনও সত্যিকারের ব্যাকআপ সমাধান আর নেই যেখানে - এমনকি প্যারিটি বা মিররযুক্ত ড্রাইভও নয়, একটি সত্য ব্যাকআপ টেক্সাসে আপনার কার্যালয়ে থাকা কপিরাইটের অনুলিপি আল্পসে ভূগর্ভস্থ কোথাও বসে আছেন)

parent transid verify failed on 31302336512 wanted 62455 found 62456

এখানে জার্নালটি 62455 চাইছে তবে 62456 এ ডিস্কটি এগিয়ে রয়েছে, সুতরাং আপনার ক্ষেত্রে আমি কেবল জার্নালটি সাফ করব। জার্নালটি এবার আপডেট হয়নি। আবার আমি আপনাকে নিরাপদ জিনিস হ'তে বলেছিলাম, যদি এটি আপনার কেবলমাত্র ডেটা এবং এর মেগা সমালোচনা করে (আপনার জন্য লজ্জাজনক), এবং আমি নিরাপদ হওয়ার জন্য প্রথমে নীচের ক্রিয়াকলাপগুলি করব।

বিটিআরএফএসকে / ডেভ / এসডিএ 5 চালানো (যা কেবলমাত্র একটি পঠনযোগ্যভাবে পরীক্ষা করে যাতে এটি সম্পূর্ণ নিরাপদ হয়, কেবলমাত্র বিটিআরএসপি বিকল্পগুলির যেটি আপনাকেই চিন্তিত করতে হবে) আপনাকে সেই বার্তাগুলিও প্রদর্শন করবে।

তবে সাবধান থাকুন যদি সেই ডেটা সমালোচনা হয় তবে আমি প্রথমে করতাম (অন্যান্য জেনেটরা যেমন বলেছে)

mount -t btrfs -o rootflags=recovery,nospace_cache /dev/sda3 /mnt/sda3

mount -t btrfs -o rootflags=recovery,nospace_cache,clear_cache /dev/sda3 /mnt/sda3

mount -t btrfs -o recovery,nospace_cache,nospace_cache /dev/sda3 /mnt/sda3

তারপরে আপনার সমস্ত ফাইল সিপি বা আরএসএনসি নিরাপদ স্থানে নিয়ে যান, তারপরে বিটিআরএফএস-জিরো-লগ নিরাপদ করুন, যদি এটির একটি সফল ক্রিয়াকলাপ আপনি কেবলমাত্র আপনার সিস্টেমে ব্যাক আপ করার জন্য অনেক সময় ব্যয় করেছেন (তবে এটি সফল না হলে, আপনি কেবল আপনার সংরক্ষণ করেছেন গাধা)

তারপরে যদি মাউন্টগুলি ব্যর্থ হয় একটি বিটিআরএফ পুনরুদ্ধার করে (সিস্টেমের ডাম্প, আমি এটির পুনঃসূচনাযোগ্য অপারেশনটি বুঝতে পারি, তবে এটি Y বা y এর জন্য বার বার জিজ্ঞাসা করে রাখে তাই আউটপুটটি দেখুন)

btrfs restore /dev/sda5 /USB

তারপরে নিরাপদে (যখন বিটিআরএফএস পুনরুদ্ধার সম্পন্ন হবে) বিটিআরএফএস-জিরো-লগ করুন, যদি এটির সফল অপারেশন আপনি কেবলমাত্র আপনার সিস্টেমকে ব্যাক আপ করার জন্য অনেক সময় ব্যয় করেছেন (তবে এটি সফল না হলে, আপনি কেবল নিজের গাধাটি সংরক্ষণ করেছেন)

আপনি প্রথমে স্ক্রিন চালাতে পারেন

screen /bin/bash

btrfs restore /dev/sda5 /USB

স্ক্রিন সাইড নোট

বিচ্ছিন্ন করতে (কমান্ড এখনও চলবে): কন্ট্রোল-এ টাইপ করুন ": বিচ্ছিন্ন" উদ্ধৃতি ছাড়াই ENTER টিপুন

বিচ্ছিন্ন করার আরেকটি উপায়: তারপরে পুটি বা আপনার টার্মিনালের বাইরে গিয়ে এটি বিচ্ছিন্ন হয়ে যাবে (কমান্ডটি / পুনরুদ্ধারটি এখনও চলবে)।

এটি পরীক্ষা করতে, কেবল এটিতে আবার স্ক্রিন করুন:

screen -x

স্ক্রীন -x সেশনগুলিতে সংযুক্ত হবে, এমনকি যদি এটি পৃথক করা হয়, এবং -h এর বিপরীতে, এটি ইতিমধ্যে সংযুক্ত থাকলেও এটি সংযুক্ত করবে)

আপনার যদি বেশ কয়েকটি স্ক্রিন থাকে তবে স্ক্রীন -x আপনাকে জানাবে যে অধিবেশনটির সাথে সংযুক্ত করার জন্য আপনাকে আরও নির্দিষ্ট হতে হবে:

screen -ls

সমস্ত সেশনের তালিকার জন্য ls, এটি মনে রাখা সহজ।

পিআইডি দেখতে আপনি এটি করতে পারেন:

ps aux | grep screen

একবার আপনার পিআইডি সন্ধান করার পরে, স্ক্রিনটি এভাবে চালান:

screen -x PID

এটি একটি নির্দিষ্ট সেশনে সংযুক্ত হবে। আপনি একই স্ক্রিনের সাথে একাধিক সেশন / পুটিস সংযুক্ত থাকতে পারেন (তারা একই পাঠ্য আউটপুট দেবে, আপনি একটিতে কমান্ড লিখতে পারেন এবং সেগুলি অন্য পুটিতে মিরর করা হবে)


7

রুট এফএস মাউন্ট অপশনগুলি ব্যবহার করে বুটে মাউন্ট করুন:

rootflags=recovery,nospace_cache

অথবা

rootflags=recovery,nospace_cache,clear_cache

বিটিআরএফএসের মাউন্ট অপশনগুলির সম্পূর্ণ তালিকাটি এখানে থাকতে হবে https://btrfs.wiki.kernel.org/index.php/ মাউন্ট_ওপশন এবং অন্যান্য জিনিসগুলি দরকারী হতে পারে যেমন নোটিম, নোডাটাকো (আমাকে দেওয়ার জন্য একটি কার্নেল বাগ স্থির করা হয়েছে) আমার ফাইলগুলি অনুলিপি করার সুযোগ)।

এটি আপনার grub.cfg / menu.lst এ যুক্ত করুন বা বুট করার সময় এটি টাইপ করুন।

Nospace_cache স্টাফ জিনিসগুলিকে মারাত্মকভাবে ধীর করবে। কেবল বুট আপ করুন, অপেক্ষা করুন (দীর্ঘ), শাট ডাউন করুন এবং সাধারণত বুট করুন।

কিছু দিন আগে আমারও একই জিনিস ছিল এবং উপরেরটি এটি ঠিক করেছিল। তবে এর পরেও কিছু স্থানের সমস্যা ছিল ... রিপোর্ট করা স্থানটি 100% নয় তবে এটি এখনও স্থানের বাইরে বলতে পারে।

==

আমি মনে করি আপনি নিজের fstab এ একই বিকল্পগুলি যুক্ত করতে পারেন উদাহরণস্বরূপ:

UUID=0237alksfadg-lhdfkj3624-4fdfjb-9dsfe2d-dfddaf /home btrfs defaults,recovery,nospace_cache,clear_cache,subvol=@home 0  
 2

আপনি যদি একটি / হোম ডিরেক্টরি পুনরায় চেষ্টা করার সাথে একটি পার্টিশন দিয়ে মাউন্ট করা UUID=0237alksfadg-lhdfkj3624-4fdfjb-9dsfe2d-dfddaf


দুটো কেন nospace_cache?
একটি সিভিএন

এটি একটি টাইপো ছিল, ক্লিয়ার_ক্যাশ হওয়ার কথা ছিল
পিটার

:) আপনি সবেমাত্র ব্যাকআপের মাধ্যমে সংরক্ষণ করেছেন!
derflocki

1

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

নিম্নলিখিত কমান্ডটি দিয়ে আমি নিজেই পার্টিশনটি মাউন্ট করেছি:

mount -t btrfs -o recovery,nospace_cache,nospace_cache /dev/sda3 /mnt/sda3এবং আসলে আমার ডেটা সংরক্ষণ করতে সক্ষম হয়েছিল। যদিও এটি মাউন্ট করতে খুব বেশি সময় লাগেনি। তাই পিটার ধন্যবাদ।


3
আপনি কেবল এটি পোস্টার এর উত্তরের মন্তব্য হিসাবে পোস্ট করতে চাইতে পারেন, 'এটি কাজ করেছে' বলে এবং তারপরে সত্যিকারের উত্তর হিসাবে চিহ্নিত করুন। অন্যথায়, পিটার কোনও "সত্য" ক্রেডিট পাবেন না (রেপ পয়েন্ট)
টমাস ওয়ার্ড

1
mount -t btrfs -o ro,nospace_cache,nospace_cache /dev/sda3 /mnt/sda3

ro = কেবল পঠনযোগ্য

আমার জন্য এই কাজ


1
উত্তর হিসাবে যুক্ত করা অনুরূপ মন্তব্যে আপনি কি লর্ড অফ টাইমের মন্তব্যটি পড়েছেন? এখানে এটি আবার না থাকলে - "আপনি কেবল এইটিকে পিটারের উত্তরের মন্তব্য হিসাবে পোস্ট করতে চাইতে পারেন এবং বলেছিলেন যে 'এটি কাজ করেছে' এবং তারপরে এটিকে সত্য উত্তর হিসাবে চিহ্নিত করুন otherwise নইলে পিটার কোনও" সত্য "পাবেন না ক্রেডিট (
পুনরাবৃত্তি

1

আমারও একই সমস্যা ছিল। পুনরায় বুট করার পরে আমি আর আমার বিটিআরএফস পার্টিশনটি মাউন্ট করতে সক্ষম হইনি। তবে এখানে উল্লিখিত কোনও সমাধানই এটি সমাধান করতে পারেনি।

এটি আমার জন্য কী ঠিক করেছিল তা 3.10 থেকে 3.12 থেকে কার্নেলকে আপগ্রেড করছে। পুনরায় বুট করার পরে বিটিআরএফস পার্টিশনটি আবার মাউন্ট করা যায়।

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