Reading a corrupted file on ZFS
Jeremy Faulkner
gldisater at gmail.com
Fri Feb 19 01:08:56 UTC 2021
ZDB can be used to pull individual blocks out of a zpool to allow you to
piece together what's left of your file.
https://www.youtube.com/watch?v=y7gQwypNMdk
https://gist.github.com/mdimura/5aa4c163a7e0856b3712b6a880670678
On 2021-02-12 9:53 a.m., Artem Kuchin wrote:
> I did a little experiment
>
> I have a mirror ZFS pool called ZDATA, i created a file and damanged the
> same byte in file in it on both disks.
>
> File has ABCDEF string.
>
>
> ZDATA ONLINE 0 0 0
> mirror-0 ONLINE 0 0 0
> ada0 ONLINE 0 0 1
> ada1 ONLINE 0 0 0
>
>
> destroy ZDATA
>
> on ada0 change A to Z
> on ada1 change A to Y
> reimport
>
> root at xigmanas:~# zpool status
> pool: ZDATA
> state: ONLINE
> scan: scrub repaired 24K in 0 days 00:03:01 with 0 errors on Fri Feb
> 12 16:48:46 2021
> config:
>
> NAME STATE READ WRITE CKSUM
> ZDATA ONLINE 0 0 0
> mirror-0 ONLINE 0 0 0
> ada0 ONLINE 0 0 0
> ada1 ONLINE 0 0 0
>
> errors: No known data errors
>
> Hmm. it repaired something. Read data from disks.
> ada0 - Z
> ada1 - Y
> so, that repair was not the rotten bytes.
>
> Now run scrub
>
> root at xigmanas:~# zpool status -v ZDATA
> pool: ZDATA
> state: ONLINE
> status: One or more devices has experienced an error resulting in data
> corruption. Applications may be affected.
> action: Restore the file in question if possible. Otherwise restore the
> entire pool from backup.
> see:http://illumos.org/msg/ZFS-8000-8A
> <http://illumos.org/msg/ZFS-8000-8A>
> scan: scrub repaired 0 in 0 days 00:03:02 with 1 errors on Fri Feb 12
> 16:59:49 2021
> config:
>
> NAME STATE READ WRITE CKSUM
> ZDATA ONLINE 0 0 1
> mirror-0 ONLINE 0 0 2
> ada0 ONLINE 0 0 2
> ada1 ONLINE 0 0 2
>
> errors: Permanent errors have been detected in the following files:
>
> /data/DATASET1/test.file
>
> the data is still Z and Y, not sync-ed.
>
> I cannot read or write this file. This is bad.
>
> zfs set checksum=off ZDATA
>
> did not help, still cannot read or write the file.
>
> zpool clear -F ZDATA
>
> still cannot r/w the file
>
> Now i am stuck in worst situation that with UFS - i cannot read what's
> left of this file.
>
> I deleted the file and the scrubbed - error went away. But i lost the file.
>
> So, the question is how to read the file with an error ? I googled for 2
> hours and still did not find a solution.
>
>
> Artem
>
> _______________________________________________
> freebsd-fs at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"
--
--
Jeremy Faulkner
More information about the freebsd-fs
mailing list