Hello
On Wednesday 13 September 2006 18:00, Jeff Mahoney wrote:
> Vladimir V. Saveliev wrote:
> > Hello
> >
> > On Monday 04 September 2006 23:26, [EMAIL PROTECTED] wrote:
> >> Hi,
> >>
> >> I am observing the following Reiser failure:
> >>
> >> I am trying to use camorama with a Creative WebCam Live spca5xx driver
> >> (recently downloaded and compiled) . Camorama does not start and
> >> computer freezes (no response to mouse, or keyboard. Can't change to
> >> terminal window.
> >>
> >> Reset or pull plug leaves Knoppix 5.0.1-DVD unbootable:
> >>
> >> The actual message from GRUB is inconsistent filesystem?! From a boot
> >> loader?
> >
> > after unclean shutdown journal reply is necessary to return reiserfs to
> > consistent state. Maybe GRUB did not do that?
>
> Grub uses the journal in a read-only mode. It doesn't replay it in a
> writable fashion. When grub needs a block, it scans the blocks used in
> the journal, and uses the most recent copy it finds there before looking
> out to the rest of the file system.
>
> >> The 'fix' is even stranger. I execute fsck.reiserfs from another OS
> >> partition on the Knoppix 5.0.1-DVD partition (takes forever).
> >
> > Did fsck complete? What did it report?
> >
> >> Somehow
> >> 'reading' the Knoppix filesystem 'fixes' whatever was preventing Knoppix
> >> 5.0.1-DVD from booting.
> >
> > fsck replayed the journal.
> > Does camorama work now?
> >
> > If it still causes computer freeze - can you please install serial or
> > network console and try to catch what does kernel output when it freezes.
>
> If the system doesn't work still, I believe grub has a debugging output
> mode that could yield more information. You'd need to rebuild and
> reinstall it.
>
knoppix 5.0.1 uses grub-0.97. John, can you, please, patch it with the
attached patch, build and re-install as boot loader it and try to reproduce
the problem. Hopefuly, added output will help us to understand why grub finds
the filesystem is inconsistent.
> -Jeff
diff -puN stage2/fsys_reiserfs.c~reiserfs-debug stage2/fsys_reiserfs.c
--- grub-0.97/stage2/fsys_reiserfs.c~reiserfs-debug 2006-09-13 18:41:43.000000000 +0400
+++ grub-0.97-vs/stage2/fsys_reiserfs.c 2006-09-13 18:45:40.000000000 +0400
@@ -22,7 +22,7 @@
#include "shared.h"
#include "filesys.h"
-#undef REISERDEBUG
+#define REISERDEBUG 1
/* Some parts of this code (mainly the structures and defines) are
* from the original reiser fs code, as found in the linux kernel.
@@ -664,6 +664,9 @@ reiserfs_mount (void)
return 1;
}
+#define fs_corrupted() \
+ printf("%s: %d: %s: fs inconsistency is found\n", __FILE__, __LINE__, __FUNCTION__)
+
/***************** TREE ACCESSING METHODS *****************************/
/* I assume you are familiar with the ReiserFS tree, if not go to
@@ -713,6 +716,7 @@ read_tree_node (unsigned int blockNr, in
/* Make sure it has the right node level */
if (BLOCKHEAD (cache)->blk_level != depth)
{
+ fs_corrupted();
errnum = ERR_FSYS_CORRUPT;
return 0;
}
@@ -878,6 +882,7 @@ search_stat (__u32 dir_id, __u32 objecti
}
ih++;
}
+ fs_corrupted();
errnum = ERR_FSYS_CORRUPT;
return 0;
}
@@ -1058,8 +1063,10 @@ reiserfs_dir (char *dirname)
if (! next_key ()
|| reiserfs_read (linkbuf, filemax) != filemax)
{
- if (! errnum)
+ if (! errnum) {
+ fs_corrupted();
errnum = ERR_FSYS_CORRUPT;
+ }
return 0;
}
_