Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jul 2011 09:38:07 -0700
From:      Artem Belevich <art@freebsd.org>
To:        Steven Hartland <killing@multiplay.co.uk>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: Forcing a full file read in ZFS even when checksum error encountered
Message-ID:  <CAFqOu6izW9sbE1-1x86aXEvawQYuLMYjoqmvkGQ18rO-9Z3zjQ@mail.gmail.com>
In-Reply-To: <94D74687DE95420486730136248EEB77@multiplay.co.uk>
References:  <69E82BC1AF1E4F50B37119C4E614B190@multiplay.co.uk> <CAFqOu6iPzbZSZ3gwC5pu=Swk1z=L-dkZ-aarXDESoHnMJuHWyg@mail.gmail.com> <94D74687DE95420486730136248EEB77@multiplay.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jul 13, 2011 at 3:01 AM, Steven Hartland
<killing@multiplay.co.uk> wrote:
> ----- Original Message ----- From: "Artem Belevich" <art@freebsd.org>
>>
>> Maybe. See here:
>> http://blogs.oracle.com/relling/entry/holy_smokes_a_holey_file
>>
>> Using that method you still would not get the bad block, but you may
>> be able to recover data beyond it.
>>
>> If you really want to get access to the data that ZFS considers to be
>> corrupted, you need to get close and personal with zdb.
>> This blog post may be a good starting point:
>> http://cuddletech.com/blog/?p=3D407
>
> Perfect, thanks Artem.
>
> For the record using the following zdb commands I've managed to get the
> file data off the pool.
>
> 1. zdb -dddd <pool>/<dataset> (find the objectid by searching for the
> filename)

If I understand it correctly, opjectid is used as inode number. "ls
-i" would let you find it a bit faster.

--Artem

> 2. zdb -ddddd <pool>/<dataset> <objectid> (find the indirect blocks, the
> third block of hex)
> 3. zdb -R <pool>:<indirect blocks> 2>/tmp/filedata
>
> e.g.
> zdb -dddd tank/usr
> zdb -ddddd tank/usr 1243
> zdb -R tank:0:22df120000:18000:r 2>corrupt.jpg
>
> =A0 Regards
> =A0 Steve
>
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> This e.mail is private and confidential between Multiplay (UK) Ltd. and t=
he
> person or entity to whom it is addressed. In the event of misdirection, t=
he
> recipient is prohibited from using, copying, printing or otherwise
> disseminating it or any information contained in it.
> In the event of misdirection, illegible or incomplete transmission please
> telephone +44 845 868 1337
> or return the E.mail to postmaster@multiplay.co.uk.
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFqOu6izW9sbE1-1x86aXEvawQYuLMYjoqmvkGQ18rO-9Z3zjQ>