Ext4 সুপারব্লকগুলি পুনরুদ্ধার করা হচ্ছে


47

সম্প্রতি, আমার বাহ্যিক হার্ড ড্রাইভের ঘেরটি ব্যর্থ হয়েছে (হার্ডড্রাইভ নিজেই অন্য একটি ঘেরে শক্তিশালী হয়)। যাইহোক, ফলস্বরূপ, এটি প্রদর্শিত হয় এটির EXT4 ফাইল সিস্টেমটি দূষিত।

ড্রাইভে একটি একক পার্টিশন রয়েছে এবং এটি জিপিটি পার্টিশন টেবিল ব্যবহার করে (লেবেল সহ ears)।

fdisk -l /dev/sdb শো:

   Device Boot      Start         End      Blocks   Id  System
     /dev/sdb1          1  1953525167   976762583+  ee  GPT

testdisk পার্টিশনটি অক্ষত রয়েছে:

1 P MS Data                     2049 1953524952 1953522904 [ears]

... তবে পার্টিশনটি মাউন্ট করতে ব্যর্থ হয়েছে:

$ sudo mount /dev/sdb1 a
mount: you must specify the filesystem type
$ sudo mount -t ext4 /dev/sdb1 a 
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,

fsck একটি অবৈধ সুপারব্লক রিপোর্ট করেছে:

$ sudo fsck.ext4 /dev/sdb1            
e2fsck 1.42 (29-Nov-2011)
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/sdb1

এবং e2fsckএকটি অনুরূপ ত্রুটি রিপোর্ট:

$ sudo e2fsck /dev/sdb1        
Password: 
e2fsck 1.42 (29-Nov-2011)
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/sdb1

dumpe2fs এছাড়াও:

$ sudo dumpe2fs /dev/sdb1                      
dumpe2fs 1.42 (29-Nov-2011)
dumpe2fs: Bad magic number in super-block while trying to open /dev/sdb1

mke2fs -n(দ্রষ্টব্য, -n) সুপারব্লকগুলি প্রদান করে:

$ sudo mke2fs -n /dev/sdb1       
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
61054976 inodes, 244190363 blocks
12209518 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
7453 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848

... তবে প্রতিটি ব্লকের জন্য "e2fsck -b [block]" চেষ্টা করা ব্যর্থ:

$ sudo e2fsck -b 71663616 /dev/sdb1 
e2fsck 1.42 (29-Nov-2011)
e2fsck: Invalid argument while trying to open /dev/sdb1

তবে আমি যেমন বুঝতে পেরেছি, ফাইল সিস্টেম তৈরি করার সময় এগুলিই সুপারব্লকগুলি ছিল, যার অর্থ এই নয় যে তারা এখনও অক্ষত রয়েছে।


কেউ যদি লগটি ডিক্রিফার করতে পারে তবে আমি testdisk গভীর অনুসন্ধানও চালিয়েছি। এটিতে অনেকগুলি প্রবেশের উল্লেখ রয়েছে:

recover_EXT2: s_block_group_nr=1/7452, s_mnt_count=6/20,
s_blocks_per_group=32768, s_inodes_per_group=8192
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 244190363
recover_EXT2: part_size 1953522904
recover_EXT2: "e2fsck -b 32768 -B 4096 device" may be needed

এই মানগুলির সাথে e2fsck চালনা দেয়:

e2fsck: Bad magic number in super-block while trying to open /dev/sdb1

আমি সমস্ত সুপারব্লক সহ এটি চেষ্টা করেছি testdisk.log

for i in $(grep e2fsck testdisk.log | uniq | cut -d " " -f 4); do
   sudo e2fsck -b $i -B 4096 /dev/sdb1
done

... সব একই e2fsckত্রুটি বার্তা সহ।


আমার শেষ প্রয়াসে, আমি বিভিন্ন ফাইল সিস্টেম অফসেট চেষ্টা করেছি। প্রতিটি অফসেটের জন্য i, যেখানে i31744, 32768, 1048064, 1049088 এর মধ্যে একটি:

$ sudo losetup -v -o $i /dev/loop0 /dev/sdb

... এবং দৌড়ে testdisk /dev/loop0, আমি আকর্ষণীয় কিছু পাই নি।


আমি মোটামুটি ক্লান্তিকর হয়েছি, তবে নিম্ন-স্তরের ফাইল পুনরুদ্ধারের সরঞ্জামগুলি ( / ) অবলম্বন না করে ফাইল সিস্টেম পুনরুদ্ধার করার কোনও উপায় আছে কি?foremostphotorec


কি sudo fdisk -l /dev/sdbদেখায়?
কার্লসন

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

আপনি কি এই ডিস্কে এলভিএম রাখেননি? আপনার কি কোনও বাহ্যিক ঘের রয়েছে পূর্বের (একই ব্লকের আকার, ইত্যাদি) মতো একই ধরণের?
জান মেরেক

1
@ কাইলজোনস testdiskউপরে উল্লিখিত হিসাবে, লেখকের পরামর্শ অনুসরণ করে আমি বিভিন্ন অফসেট ব্যবহার করে চেষ্টা করেছি losetup( i * 512যেখানে i62, 64, 2047 বা 2049 এর মধ্যে একটিও রয়েছে)।
tlvince

@ জনমারেক না, দুর্ভাগ্যক্রমে কোনও এলভিএম নেই। ঘেরটি এমন একটি যা কোনও স্ট্যান্ডার্ড 3.5 "ডিস্ক রাখে, তবে আমার কাছে আর
একটিও

উত্তর:


15

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

পরিচ্ছন্নতার স্বার্থে উত্তর হিসাবে চিহ্নিত করা।


8

এটি ইতিমধ্যে পুরানো হতে পারে তবে কয়েকটি পরামর্শ:

যদি আপনি নিশ্চিত হন যে আসল ব্লকসাইজটি 4096, যেমন দাবি করা হয়েছে testdisk, আপনি ডিস্কের উপরের সুপারব্লকগুলি ব্যবহার করে আবার লিখতে পারেন mke2fs -S। মানুষের কাছ থেকে:

   -S    Write  superblock and group descriptors only.  This is useful if all
          of the superblock and backup superblocks are corrupted, and a  last-
          ditch  recovery method is desired.  It causes mke2fs to reinitialize
          the superblock and group descriptors, while not touching  the  inode
          table and the block and inode bitmaps.  The e2fsck program should be
          run immediately after this option is used, and there is no guarantee
          that  any  data  will be salvageable.  It is critical to specify the
          correct filesystem blocksize when using this option, or there is  no
          chance of recovery.

আপনি যদি সঠিক ব্লকসাইজ সম্পর্কে অনিশ্চিত থাকেন mke2fs -n -b 2048 /dev/sdb1তবে এই কমান্ডটি দেওয়া সমস্ত সুপারব্লক ব্যাকআপগুলি ব্যবহার করে দেখুন এবং তার পরে কিন্তু শেষ ব্লকসাইজ 1024 ব্যবহার করুন।


0

যেমনটি উল্লেখ করা হয়েছে, সম্ভবত পুরানো, কিন্তু fdisk (এএফআইকে) জিপিটি ডিস্কগুলি সমর্থন করে না। আপনাকে পার্টড বা অন্য কোনও সরঞ্জাম ব্যবহার করতে হবে।

আমি সবেমাত্র একটি ভার্চুয়াল মেশিন পরীক্ষা করেছি যা দেবিয়ান স্কুজে চলমান (কার্নেল ২.6.৩২-৫-86))) এবং পার্টেড ব্যবহার করে জিপিটি হিসাবে ভার্চুয়াল ডিস্ক ফর্ম্যাট করেছে ...

# parted /dev/sde
(parted) mklabel GPT
(parted) mkpart part1 0 10G
(parted) quit
# fdisk -l /dev/sde
.
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
.
Disk /dev/sde: 85.9 GB, 85899345920 bytes
 255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
. 
   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1       10444    83886079+  ee  GPT

এটি fdisk সংস্করণ 2.17.2 (ইউজার-লিনাক্স-এনজি)।

mkfs এবং fsck- র 'রিয়েল' পার্টিশনটি ঠিক করা উচিত, তবে জিপিটি পার্টিশন টেবিলটি নষ্ট না হয়েছে তা পরীক্ষা করার জন্য আপনার জিএনইউ বিভক্ত হওয়া উচিত ছিল।


0

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

set 1 lvm on

এবং তারপরে প্রস্থান করুন এবং পুনরায় মাউন্ট করার চেষ্টা করুন। হতে পারে এটি আপনাকেও সহায়তা করবে।

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