2011-10-17 12:20:05

by Bas van Schaik

[permalink] [raw]
Subject: Used dd to copy an ext4 filesystem, but target contained an old (mounted!) filesystem

Hi all,

Long story short: I dd'ed 1.5TB of data to an LVM volume 'newdata' that
already contained a filesystem (which I wanted to get rid of).
Unfortunately, the old filesystem turned out to be mounted during the
dd. After noticing this, I quickly created LVM snapshots of the
'newdata' volume before unmounting the old filesystem (hoping that it
didn't write out it fs data structures to 'newdata' yet, as I didn't
access it) and tried mounting the snapshot. Unfortunately, it showed the
old directory listing.

The actual data is definitely sitting on the 'newdata' volume, but the
filesystem datastructures simply don't know about it. The source of the
data is definitely gone, I can't simply dd it again.

Is there any other location where ext4 stores a copy of its data
structures? Or any other tips & tricks?

Many thanks,

Bas


2011-10-17 12:37:36

by Bas van Schaik

[permalink] [raw]
Subject: Re: Used dd to copy an ext4 filesystem, but target contained an old (mounted!) filesystem

On 17/10/11 12:52, Bas van Schaik wrote:
> (something to the wrong mailinglist)

Apologies, I seem to have sent my message to the wrong mailinglist.

Bas



ps.: of course, I'm still interested in tips & tricks!

2011-10-18 01:06:43

by Jan Kara

[permalink] [raw]
Subject: Re: Used dd to copy an ext4 filesystem, but target contained an old (mounted!) filesystem

Hi,
On Mon 17-10-11 12:52:36, Bas van Schaik wrote:
> Long story short: I dd'ed 1.5TB of data to an LVM volume 'newdata'
> that already contained a filesystem (which I wanted to get rid of).
> Unfortunately, the old filesystem turned out to be mounted during
> the dd. After noticing this, I quickly created LVM snapshots of the
> 'newdata' volume before unmounting the old filesystem (hoping that
> it didn't write out it fs data structures to 'newdata' yet, as I
> didn't access it) and tried mounting the snapshot. Unfortunately, it
> showed the old directory listing.
So let me check I understand what happened. You had some "sourcevol"
containing a filesystem and 1.5 TB of data. You did:
dd if=sourcevol of=newdata
Now you noticed newdata was mounted so you created lvm snapshot of newdata.
Then umount newdata.

Now if you mount newdata you still see contents of "sourcevol" but you'd
like to see "newdata". Am I correct?

If that's the case, shouldn't you try to mount the snapshot volume instead
of simply "newdata"?

> The actual data is definitely sitting on the 'newdata' volume, but
> the filesystem datastructures simply don't know about it. The source
> of the data is definitely gone, I can't simply dd it again.
>
> Is there any other location where ext4 stores a copy of its data
> structures?
Not really. Only the superblock is duplicated.

> Or any other tips & tricks?

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR