How can one remove a directory containing corrupt files or a corrupt file itself? For me rm just gives input/output error. Sami "Edward Ned Harvey (opensolarisisdeadlongliveopensolaris) " <opensolarisisdeadlongliveopensolaris at nedharvey.com> wrote:> From: zfs-discuss-bounces at opensolaris.org [mailto:zfs-discuss- > bounces at opensolaris.org] On Behalf Of Sami Tuominen > > Unfortunately there aren''t any snapshots. > The version of zpool is 15. Is it safe to upgrade that? > Is zpool clear -F supported or of any use here?The only thing that will be of use to restore your data will be a backup. To forget about the lost data and make the error message go away, simply rm the bad directory (and/or its parent). You''re probably wondering, you have redundancy and no faulted devices, so how could this happen?? There are a few possible explanations, but they''re all going to have one thing in common:? At some point, something got corrupted before it was written corrupted and the redundant copy also written corrupted.? It might be you had a CPU error, or some parity error in non-ECC ram, or a bus glitch or bad firmware in the HBA, for example.? The fact remains, something was written corrupted, and the redundant copy was also written corrupted.? All you can do is restore from a snapshot, restore from a backup, or accept it for what it is and make the error go away. Sorry to hear it... -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.opensolaris.org/pipermail/zfs-discuss/attachments/20121123/1a31aae2/attachment.html>
Edward Ned Harvey (opensolarisisdeadlongliveopensolaris)
2012-Nov-26 13:57 UTC
[zfs-discuss] Directory is not accessible
> From: zfs-discuss-bounces at opensolaris.org [mailto:zfs-discuss- > bounces at opensolaris.org] On Behalf Of Sami Tuominen > > How can one remove a directory containing corrupt files or a corrupt file > itself? For me rm just gives input/output error.I was hoping to see somebody come up with an answer for this ... I would expect rm to work... Maybe you have to rm the parent of the thing you''re trying to rm? But I kinda doubt it. Maybe you need to verify you''re rm''ing the right thing? I believe, if you scrub the pool, it should tell you the name of the corrupt things. Or maybe you''re not experiencing a simple cksum mismatch, maybe you''re experiencing a legitimate IO error. The "rm" solution could only possibly work to clear up a cksum mismatch.
unlink(1M)? cheers, --justin ________________________________ From: Edward Ned Harvey (opensolarisisdeadlongliveopensolaris) <opensolarisisdeadlongliveopensolaris at nedharvey.com> To: Sami Tuominen <sami.tuominen at tut.fi>; " zfs-discuss at opensolaris.org" <zfs-discuss at opensolaris.org> Sent: Monday, 26 November 2012, 14:57 Subject: Re: [zfs-discuss] Directory is not accessible> From: zfs-discuss-bounces at opensolaris.org [mailto:zfs-discuss- > bounces at opensolaris.org] On Behalf Of Sami Tuominen > > How can one remove a directory containing corrupt files or a corrupt file > itself? For me rm just gives input/output error.I was hoping to see somebody come up with an answer for this ... I would expect rm to work... Maybe you have to rm the parent of the thing you''re trying to rm?? But I kinda doubt it. Maybe you need to verify you''re rm''ing the right thing?? I believe, if you scrub the pool, it should tell you the name of the corrupt things. Or maybe you''re not experiencing a simple cksum mismatch, maybe you''re experiencing a legitimate IO error.? The "rm" solution could only possibly work to clear up a cksum mismatch. _______________________________________________ zfs-discuss mailing list zfs-discuss at opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.opensolaris.org/pipermail/zfs-discuss/attachments/20121126/28e9f34d/attachment.html>
On 2012-11-26 15:15, The OP wrote:> How can one remove a directory containing corrupt files or a corrupt file > itself? For me rm just gives input/output error.I believe you can get rid of the corrupt files by overwriting them. In my case of corrupted files, I dd''ed the corrupt blocks from a backup source into the right spot of the file. Overall this released the corrupt blocks from the pool and allowed them to get freed (or perhaps leaked in case of that bug I''ve stepped onto). Trying to free the block can get your pool into trouble or panics, depending on the nature of the corruption, though (in my case, DDT was trying to release a block that was not entered into the DDT). If this happens, your next best bet would be to trace where the error happens, invent a patch (such as letting it possibly leak away) and compile your own kernel to clean up the pool. Of course, it is also possible that the block would go away (if it is not referenced also by snapshots/clones/dedup), and such drastic measures won''t be needed. HTH, //Jim Klimov