[linux-lvm] A way to bypass LVM and extract the raw data off?
Andreas Dilger
adilger at turbolabs.com
Wed Jan 9 16:26:02 UTC 2002
On Jan 09, 2002 13:43 -0800, IpSo wrote:
> Quoting Andreas Dilger <adilger at turbolabs.com>:
> > On Jan 08, 2002 19:02 -0800, IpSo wrote:
> > > Yup! I'm confident everything as far as the reiser filesystem is fine,
> > > just LVM is very confused.
> > >
> > > Device Boot Start End Blocks Id System
> > > /dev/hda1 * 1 507 255496+ 82 Linux swap
> > > /dev/hda2 508 39813 19810224 5 Extended
> > > /dev/hda5 508 4633 2079472+ 83 Linux
> > > /dev/hda6 4634 39813 17730688+ 8e Linux LVM
> > >
> > > Does the LVM information take up the first 2mb or something that I
> > > could set the offset as, so it doesn't carry over to the loopback file?
> >
> > No, it uses a variable amount of space.
> >
> > What you could do is try
> >
> > od -Ad -a /dev/hda6 | grep "R e I s E r 2 F s"
> >
> > and start your dd 65584 bytes before the address at the line this is
> > found on (it should align to an even block boundary).
>
> At the "line", I tried the command and I got about 1000+ lines that seem to
> match. I assume I just try from the first line minus 65584 (3276800) like you
> said?
>
> [root at ipso big]# od -Ad -a /dev/hda6 | grep "R e I s E r 2 F s"
> 3342384 bs nul soh nul R e I s E r 2 F s nul nul nul
> 3383344 eot nul stx nul R e I s E r 2 F s nul nul nul
> 3424304 eot nul stx nul R e I s E r 2 F s nul nul nul
> 3498032 stx nul stx nul R e I s E r 2 F s nul nul nul
> 3547184 eot nul stx nul R e I s E r 2 F s nul nul nul
> 3616816 ack nul stx nul R e I s E r 2 F s nul nul nul
> 3706928 nl nul stx nul R e I s E r 2 F s nul nul nul
> 3825712 nl nul stx nul R e I s E r 2 F s nul nul nul
> 3842096 dc4 nul stx nul R e I s E r 2 F s nul nul nul
> 3932208 dc4 nul soh nul R e I s E r 2 F s nul nul nul
> 3944496 dc4 nul soh nul R e I s E r 2 F s nul nul nul
> 3956784 dc4 nul stx nul R e I s E r 2 F s nul nul nul
> 4001840 dc4 nul stx nul R e I s E r 2 F s nul nul nul
> ...
>
> dd if=/dev/hda6 bs=512 skip=3276800 of=/big/backup_hda6.bin
>
> -rw-r--r-- 1 root root 16478502912 Jan 9 12:50 backup_hda6.bin
Well, since "od" outputs a _byte_ offset, and "dd" is skipping _sectors_,
you need to use:
dd if=/dev/hda6 bs=512 skip=6400 of=/big/backup_hda6.bin
Granted, all of these superblock copies might be in the journal, so it
is hard to tell (with ext2/ext3 there are backup superblocks, but they
have numbers assigned to them, so you can still find the proper start
of the filesystem.
> I also tried: (/dev/hda)
> dd if=/dev/hda bs=512 skip=3276800 of=/big/backup_hda6.bin
Well, this doesn't make sense, since the offset is relative to the start
of /dev/hda6.
Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://www-mddsp.enel.ucalgary.ca/People/adilger/
More information about the linux-lvm
mailing list