If the read/write routine in the kernel finds an error when accessing
compressed clusters, then the kernel raises the EXT2_ECOMPR_FL
flag, which shows in lsattr
output as an `E' where
the `c' would usually be.
The kernel will still allow you to try to read the file (though you may get an I/O error for erroneous clusters), but the kernel won't allow you to open the file with write access while the `E' flag is set.
You can clear the `E' flag using chattr -E
, but chances are
that it will be set again the next time the file is accessed, unless you
found the origin of the error and corrected it.
Of course, data are not lost. e2decompress
should be able to be
used to retrieve most of the data, with any undecompressible clusters
being copied verbatim (i.e. the raw data), with a warning on standard
error. [Newbie note: `on standard error' usually means `to the
screen'.]
[In e2compr versions prior to 0.3.5, user programs didn't have read
access to raw compressed data, so e2decompress
wouldn't work in
the way it was supposed to (so it was useless for recovering data)
unless one were to reboot to a kernel without e2compr support.]
Go to the first, previous, next, last section, table of contents.