[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ext3-users
Subject:    Re: recovery recommendations
From:       Andreas Dilger <adilger () dilger ! ca>
Date:       2011-01-21 20:05:13
Message-ID: 50F3AE32-891C-448F-9AFF-9E700ACD86DC () dilger ! ca
[Download RAW message or body]

On 2011-01-21, at 12:06, Eric Sandeen wrote:
> On 1/21/11 12:36 PM, m.p. wrote:
> > Recently a 640GB external enclosure was PEBKAC'd with the following
> > command:
> > 
> > dd if=/some-185mb-linux-install.iso of=/dev/sdx
> > 
> > [not of=/dev/sdx1]
> > 
> > Since the PEBKAC, the drive has not been written to beyond being
> > unplugged. I have made an image of the drive and have attempted to run
> > against it: testdisk, fsck.ext3 with alternate superblocks, and even
> > "fsck.ext3 -Sy", to no avail.
> > 
> > So. I am *convinced* that my 550gb of data is recoverable. It seems that
> > [obviously] the first 185mb is gone - whatever files those were.
> 
> You really need to restore from backups.  You just overwrote 30% of
> your filesystem with something else... you've lost partition data,
> metadata, directory data, file data ... whatever was in that first
> 185M.

Eric, note 185 Megabytes, vs 550 Gigabytes, so only the first 1.5 groups were \
clobbered (which may have been largely filled by the journal, depending on when the \
filesystem was formatted).

> I think the best you can do is low-level recovery at this point,
> groveling around for file fragments with something like the photo recovery
> tools.

Actually, I think the chance for significant data recovery is pretty good.

> Maybe, just -maybe- if you can find a backup superblock, fsck might try
> to piece a few things together.

I think the first thing to do is to recover the partition table EXACTLY the way it \
was before.  There was a tool for this, "gpart" or something similar, that could \
recover partition tables.

Alternately, if you build and run the "findsuper" tool from e2fsprogs sources (I've \
attached an x86_64 binary here, maybe it will work for you), it will tell you the \
starting and ending offset of each ext* filesystem, based on superblocks that it \
finds on the disk.  You need to take the byte offsets and convert them into kB or \
sector offsets for use with fdisk.

Once you get the partition table correct, e2fsck should have no problem to recover \
the filesystem, though it will be missing the root directory and possibly a bunch of \
other files that were stored in the first 185MB of disk.  The possibly good news is \
that the journal _used_ to be stored at the start of the filesystem, and would fill \
32MB or 128MB of the start of the disk, and in turn that dissuaded the allocator from \
putting files into that group.  Sadly (maybe), the journal is now allocated in the \
middle of the filesystem for performance reasons and that coincidental "data \
protection" is no longer with us.

> But you can't generally overwrite 1/3 of a filesystem and expect normal
> tools to recover for you, I'm afraid.

Surprisingly, extN is very robust in this regard.  I've been able (required) to \
recover data from similarly corrupted filesystems, and a lot can be done.  With \
changes like flex_bg and UNMAP it will get a lot harder, however.


Cheers, Andreas






_______________________________________________
Ext3-users mailing list
Ext3-users@redhat.com
https://www.redhat.com/mailman/listinfo/ext3-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic