Hi,
On Mon, Feb 04, 2002 at 05:01:33AM -0800, Pavel Smejkal wrote:
> I'm using RedHat 7.2. I needed to mount my root fs to
> QNX 6.1. QNX supports ext2 only but I tried that
> anyway. It was mounted wrong (e.g. the /root directory
> was symbolic link to non-existing file).
> When I wanted to boot from the RedHat again, these
> errors occured:
> Mounting root filesystem
> EXT3: failed to open journal device
> unknown-block(0,0):-19
ext3 has looked for a journal inode, and there wasn't one; it then
looked for a journal device and failed.
QNX has corrupted the ext2 superblock --- it has cleared out the
journal_inum field while leaving the "HAS_JOURNAL" flag set in the
flags field. So, ext3 thinks there must be a journal, but can't find
it.
> I tried to boot from CD and run fsck but only the
> error message changed:
> ...
> EXT3: failed to open journal device unknown-block(2,3)
> Does anyone have any ideas what the problem is?
You've lost the journal because of the QNX corruption, but there's
still information in the superblock telling ext3 that the journal
should exist somewhere else. ext3 refuses to proceed, because it is
dangerous to discard that journal.
You should run
tune2fs -O ^has_journal /dev/...
to clear the journal state on the filesystem, to tell e2fsprogs not to
bother looking for the missing journal. Then, e2fsck should
correctly fix up the other bits of the superblock, and you'll end up
with a valid ext2 filesystem that you can convert back to ext3 with
"tune2fs -j".
Cheers,
Stephen