Date: Tue, 05 Feb 2008 15:19:12 +0100 From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= <des@des.no> To: Joe Peterson <joe@skyrush.com> Cc: freebsd-fs@freebsd.org Subject: Re: Forcing full file read in ZFS even when checksum error encountered Message-ID: <864pcnxz8f.fsf@ds4.des.no> In-Reply-To: <47A864D9.4060504@skyrush.com> (Joe Peterson's message of "Tue\, 05 Feb 2008 06\:30\:01 -0700") References: <47A73C8D.3000107@skyrush.com> <86prvby5o1.fsf@ds4.des.no> <47A864D9.4060504@skyrush.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Joe Peterson <joe@skyrush.com> writes: > Dag-Erling Sm=C3=B8rgrav <des@des.no> writes: > > Joe Peterson <joe@skyrush.com> writes: > > > When I try to copy the file, I get only 655360 bytes copied, and > > > then the copy stops. I assume this is because the next block is > > > where the error is. > > Try to lseek past it. > Well, I'd like to actually read the "bad" data too, so I can see if it is > really bad or if there is a metadata issue. Basically, I'd like to recov= er > all the file's bytes this once without having ZFS stop me due to the chec= ksum > failure, just for debugging purposes. Is this impossible in ZFS? There is now way to "read the bad data" since an unrecoverable checksum error means that ZFS has no idea which of the multiple version of the affected block is the right one. (I assume this was a raidz pool; if not, imagine Nelson Muntz from the Simpsons yelling "ha ha!" at you) My advice is to use 'dd conv=3Dnoerror' with a sufficiently small block size to recover what parts you can. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?864pcnxz8f.fsf>