2010-10-24 11:21:10

by Jesus Sanchez Melendro

[permalink] [raw]
Subject: How to remove a corrupted dir in an ext4 FS?

After a corruption in an ext4 filesystem, I've checked and moved to the
correct position all the files and dirs in lost+found, but one of the dirs is
corrupted.

The "ls -l" command says:
d????????? ? ? ? ? ? /lost+found/#90116

If I try to remove it with "rmdir" or "rm -rf" or "mv" or "unlink", all
commands say:
<command used>: failed to remove `#90116': Input/output error

Running "fsck" says that the filesystem is OK.

Is there a way to remove that corrupted dir?


2010-10-25 14:16:59

by Andreas Dilger

[permalink] [raw]
Subject: Re: How to remove a corrupted dir in an ext4 FS?

On 2010-10-24, at 19:12, Jesus Sanchez Melendro wrote:
> After a corruption in an ext4 filesystem, I've checked and moved to the
> correct position all the files and dirs in lost+found, but one of the dirs is
> corrupted.
>
> The "ls -l" command says:
> d????????? ? ? ? ? ? /lost+found/#90116
>
> If I try to remove it with "rmdir" or "rm -rf" or "mv" or "unlink", all
> commands say:
> <command used>: failed to remove `#90116': Input/output error
>
> Running "fsck" says that the filesystem is OK.
>
> Is there a way to remove that corrupted dir?

You can probably check "lsattr /lost+found/#90116" to see if either the "i" (immutable) or "a" (append-only) attribute is set. If yes, then running "chattr -i -a/lost+found/#90116" will remove those attributes, and it should be removable.

Cheers, Andreas






2010-10-25 14:29:41

by Theodore Ts'o

[permalink] [raw]
Subject: Re: How to remove a corrupted dir in an ext4 FS?

On Mon, Oct 25, 2010 at 10:16:55PM +0800, Andreas Dilger wrote:
> On 2010-10-24, at 19:12, Jesus Sanchez Melendro wrote:
> > After a corruption in an ext4 filesystem, I've checked and moved to the
> > correct position all the files and dirs in lost+found, but one of the dirs is
> > corrupted.
> >
> > The "ls -l" command says:
> > d????????? ? ? ? ? ? /lost+found/#90116
> >
> > If I try to remove it with "rmdir" or "rm -rf" or "mv" or "unlink", all
> > commands say:
> > <command used>: failed to remove `#90116': Input/output error
> >
> > Running "fsck" says that the filesystem is OK.
> >
> > Is there a way to remove that corrupted dir?
>
> You can probably check "lsattr /lost+found/#90116" to see if either
> the "i" (immutable) or "a" (append-only) attribute is set. If yes,
> then running "chattr -i -a/lost+found/#90116" will remove those
> attributes, and it should be removable.

If it was an immutable or apppend-only attribute, it should have
resulted in a "Operation not permitted" error. I suspect the problem
may be an underlying disk error. You might want to check "dmesg", and
see if the hard drive is reporting I/O errors. It may very well be
that you have problems a lot more serious than just a corrupted file
system. If so, you might want to consider making an immediate backup
right away, and strongly consider replacing the hard drive if you find
I/O errors in your system logs.

- Ted