mirror of https://github.com/vitalif/e2fsprogs
e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors
Print the actual errors returned by ext2fs_open2() and ext2fs_check_desc() before we fall back to the backup block group descriptors so that it's easier to see if there is some obscure failure that is causing e2fsck to think that it should use the backup block group descriptors. Addresses-Google-Bug: #6208183 Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>bitmap-optimize
parent
349b8a37c5
commit
010c49cf49
|
@ -423,6 +423,16 @@ static struct e2fsck_problem problem_table[] = {
|
|||
N_("@S has invalid MMP magic. "),
|
||||
PROMPT_FIX, PR_PREEN_OK | PR_NO_OK},
|
||||
|
||||
/* Opening file system failed */
|
||||
{ PR_0_OPEN_FAILED,
|
||||
N_("ext2fs_open2: %m\n"),
|
||||
PROMPT_NONE, 0 },
|
||||
|
||||
/* Checking group descriptor failed */
|
||||
{ PR_0_CHECK_DESC_FAILED,
|
||||
N_("ext2fs_check_desc: %m\n"),
|
||||
PROMPT_NONE, 0 },
|
||||
|
||||
/* Pass 1 errors */
|
||||
|
||||
/* Pass 1: Checking inodes, blocks, and sizes */
|
||||
|
|
|
@ -243,6 +243,11 @@ struct problem_context {
|
|||
/* Superblock has invalid MMP magic. */
|
||||
#define PR_0_MMP_INVALID_MAGIC 0x000043
|
||||
|
||||
/* Opening file system failed */
|
||||
#define PR_0_OPEN_FAILED 0x000044
|
||||
|
||||
/* Checking group descriptor failed */
|
||||
#define PR_0_CHECK_DESC_FAILED 0x000045
|
||||
|
||||
/*
|
||||
* Pass 1 errors
|
||||
|
|
|
@ -1232,6 +1232,15 @@ restart:
|
|||
((retval == EXT2_ET_BAD_MAGIC) ||
|
||||
(retval == EXT2_ET_CORRUPT_SUPERBLOCK) ||
|
||||
((retval == 0) && (retval2 = ext2fs_check_desc(fs))))) {
|
||||
if (retval) {
|
||||
pctx.errcode = retval;
|
||||
fix_problem(ctx, PR_0_OPEN_FAILED, &pctx);
|
||||
}
|
||||
if (retval2) {
|
||||
pctx.errcode = retval2;
|
||||
fix_problem(ctx, PR_0_CHECK_DESC_FAILED, &pctx);
|
||||
}
|
||||
pctx.errcode = 0;
|
||||
if (retval2 == ENOMEM || retval2 == EXT2_ET_NO_MEMORY) {
|
||||
retval = retval2;
|
||||
goto failure;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_open2: The ext2 superblock is corrupt
|
||||
../e2fsck/e2fsck: Superblock invalid, trying backup blocks...
|
||||
../e2fsck/e2fsck: The ext2 superblock is corrupt while trying to open test.img
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_check_desc: Corrupt group descriptor: bad block for block bitmap
|
||||
Note: if several inode or block bitmap blocks or part
|
||||
of the inode table require relocation, you may wish to try
|
||||
running e2fsck with the '-b 8193' option first. The problem
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_check_desc: Corrupt group descriptor: bad block for inode bitmap
|
||||
Note: if several inode or block bitmap blocks or part
|
||||
of the inode table require relocation, you may wish to try
|
||||
running e2fsck with the '-b 8193' option first. The problem
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_check_desc: Corrupt group descriptor: bad block for inode table
|
||||
Note: if several inode or block bitmap blocks or part
|
||||
of the inode table require relocation, you may wish to try
|
||||
running e2fsck with the '-b 8193' option first. The problem
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_check_desc: Corrupt group descriptor: bad block for inode table
|
||||
../e2fsck/e2fsck: Group descriptors look bad... trying backup blocks...
|
||||
Inode table for group 1 is not in group. (block 0)
|
||||
WARNING: SEVERE DATA LOSS POSSIBLE.
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_check_desc: Corrupt group descriptor: bad block for block bitmap
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
Relocating group 0's block bitmap to 2...
|
||||
Pass 2: Checking directory structure
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_check_desc: Corrupt group descriptor: bad block for inode table
|
||||
../e2fsck/e2fsck: Group descriptors look bad... trying backup blocks...
|
||||
Inode table for group 1 is not in group. (block 0)
|
||||
WARNING: SEVERE DATA LOSS POSSIBLE.
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_check_desc: Corrupt group descriptor: bad block for inode bitmap
|
||||
Filesystem did not have a UUID; generating one.
|
||||
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
|
|
|
@ -113,6 +113,7 @@ Exit status is 0
|
|||
|
||||
debugfs -R ''set_super_value reserved_gdt_blocks 15679'' -w test.img
|
||||
Exit status is 0
|
||||
ext2fs_check_desc: Corrupt group descriptor: bad block for block bitmap
|
||||
../e2fsck/e2fsck: Group descriptors look bad... trying backup blocks...
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
Pass 2: Checking directory structure
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_check_desc: Corrupt group descriptor: bad block for block bitmap
|
||||
../e2fsck/e2fsck: Group descriptors look bad... trying backup blocks...
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
Pass 2: Checking directory structure
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_open2: The ext2 superblock is corrupt
|
||||
../e2fsck/e2fsck: Superblock invalid, trying backup blocks...
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
Pass 2: Checking directory structure
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ext2fs_open2: Bad magic number in super-block
|
||||
../e2fsck/e2fsck: Superblock invalid, trying backup blocks...
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
Pass 2: Checking directory structure
|
||||
|
|
Loading…
Reference in New Issue