diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog index bee6f1e8..1f80af29 100644 --- a/e2fsck/ChangeLog +++ b/e2fsck/ChangeLog @@ -1,3 +1,12 @@ +Tue Jan 20 15:37:01 1998 Theodore Ts'o + + * unix.c (main): In the case where the filesystem revision is too + high, print the message about the superblock possibly + being corrupt. + + * e2fsck.8.in: Add expanded comments about how the -b option + works. + Sat Jan 17 13:02:16 1998 Theodore Ts'o * e2fsck.h: If EXT2_FLAT_INCLUDES is defined, then assume all of diff --git a/e2fsck/e2fsck.8.in b/e2fsck/e2fsck.8.in index 9cf90356..03cbd68c 100644 --- a/e2fsck/e2fsck.8.in +++ b/e2fsck/e2fsck.8.in @@ -40,9 +40,14 @@ suggested that people use option whenever possible. .TP .I -b superblock -Instead of using the normal superblock, use the alternative superblock +Instead of using the normal superblock, use an alternative superblock specified by -.IR superblock . +.IR superblock . This option is normally used when the primary superblock +has been corrupted; most filesystems have primary superblocks located at +blocks 8193, 16385, etc. If an alternative superblock is specified and +the filesystem is not opened read-only, e2fsck will make sure that the +primary superblock is updated appropriately upon completion of the +filesystem check. .TP .I -B blocksize Normally, diff --git a/e2fsck/unix.c b/e2fsck/unix.c index b6e68ff2..10b3e8aa 100644 --- a/e2fsck/unix.c +++ b/e2fsck/unix.c @@ -494,10 +494,14 @@ restart: if (retval) { com_err(ctx->program_name, retval, "while trying to open %s", ctx->filesystem_name); - if (retval == EXT2_ET_REV_TOO_HIGH) - printf ("Get a newer version of e2fsck!\n"); - else if (retval == EXT2_ET_SHORT_READ) - printf ("Could this be a zero-length partition?\n"); + if (retval == EXT2_ET_REV_TOO_HIGH) { + printf("The filesystem revision is apparently " + "too high for this version of e2fsck.\n" + "(Or the filesystem superblock " + "is corrupt)\n\n"); + fix_problem(ctx, PR_0_SB_CORRUPT, &pctx); + } else if (retval == EXT2_ET_SHORT_READ) + printf("Could this be a zero-length partition?\n"); else if ((retval == EPERM) || (retval == EACCES)) printf("You must have %s access to the " "filesystem or be root\n", @@ -510,7 +514,6 @@ restart: printf("Disk write-protected; use the -n option" "to do a read-only\n" "check of the device.\n"); - #endif else fix_problem(ctx, PR_0_SB_CORRUPT, &pctx);