Clean up e2fsck problem description messages for typo's and to make them

easier to understand (sorry, translators).

Add new @m (multiply-claimed) and @n (invalid) expansions for e2fsck
problem descriptions.

Add Dutch translation, and update French translation.

Add an explanation of how the @-expansion and %-exapansion works in 
e2fsck/problem.c to make life easier for the translators.

Synchronize and update po files.
bitmap-optimize
Theodore Ts'o 2005-06-19 09:45:36 -04:00
parent 7d9adefed8
commit 7ae1983a23
46 changed files with 13090 additions and 6678 deletions

View File

@ -1,3 +1,10 @@
2005-06-16 Theodore Ts'o <tytso@mit.edu>
* message.c: Add @m (multiply-claimed) and @n (invalid)
expansions.
* problem.c: Clean up the problem messages displayed by e2fsck.
2005-06-05 Theodore Ts'o <tytso@mit.edu> 2005-06-05 Theodore Ts'o <tytso@mit.edu>
* e2fsck.8.in: Add a request to the REPORTING BUGS section of the * e2fsck.8.in: Add a request to the REPORTING BUGS section of the

View File

@ -70,6 +70,8 @@
* @j journal * @j journal
* @l lost+found * @l lost+found
* @L is a link * @L is a link
* @m multiply-claimed
* @n invalid
* @o orphaned * @o orphaned
* @p problem in * @p problem in
* @r root inode * @r root inode
@ -122,6 +124,8 @@ static const char *abbrevs[] = {
N_("hHTREE @d @i"), N_("hHTREE @d @i"),
N_("llost+found"), N_("llost+found"),
N_("Lis a link"), N_("Lis a link"),
N_("mmultiply-claimed"),
N_("ninvalid"),
N_("oorphaned"), N_("oorphaned"),
N_("pproblem in"), N_("pproblem in"),
N_("rroot @i"), N_("rroot @i"),

View File

@ -61,7 +61,7 @@ static const char *prompt[] = {
N_("Abort"), /* 11 */ N_("Abort"), /* 11 */
N_("Split"), /* 12 */ N_("Split"), /* 12 */
N_("Continue"), /* 13 */ N_("Continue"), /* 13 */
N_("Clone duplicate/bad blocks"), /* 14 */ N_("Clone multiply-claimed blocks"), /* 14 */
N_("Delete file"), /* 15 */ N_("Delete file"), /* 15 */
N_("Suppress messages"),/* 16 */ N_("Suppress messages"),/* 16 */
N_("Unlink"), /* 17 */ N_("Unlink"), /* 17 */
@ -89,7 +89,7 @@ static const char *preen_msg[] = {
N_("ABORTED"), /* 11 */ N_("ABORTED"), /* 11 */
N_("SPLIT"), /* 12 */ N_("SPLIT"), /* 12 */
N_("CONTINUING"), /* 13 */ N_("CONTINUING"), /* 13 */
N_("DUPLICATE/BAD BLOCKS CLONED"), /* 14 */ N_("MULTIPLY-CLAIMED BLOCKS CLONED"), /* 14 */
N_("FILE DELETED"), /* 15 */ N_("FILE DELETED"), /* 15 */
N_("SUPPRESSED"), /* 16 */ N_("SUPPRESSED"), /* 16 */
N_("UNLINKED"), /* 17 */ N_("UNLINKED"), /* 17 */
@ -156,12 +156,11 @@ static const struct e2fsck_problem problem_table[] = {
/* Relocate hint */ /* Relocate hint */
{ PR_0_RELOCATE_HINT, { PR_0_RELOCATE_HINT,
N_("Note: if there is several inode or block bitmap blocks\n" N_("Note: if several inode or block bitmap blocks or part\n"
"which require relocation, or one part of the inode table\n" "of the inode table require relocation, you may wish to try\n"
"which must be moved, you may wish to try running e2fsck\n" "running e2fsck with the '-b %S' option first. The problem\n"
"with the '-b %S' option first. The problem may lie only\n" "may lie only with the primary block group descriptors, and\n"
"with the primary block group descriptor, and the backup\n" "the backup block group descriptors may be OK.\n\n"),
"block group descriptor may be OK.\n\n"),
PROMPT_NONE, PR_PREEN_OK | PR_NOCOLLATE }, PROMPT_NONE, PR_PREEN_OK | PR_NOCOLLATE },
/* Miscellaneous superblock corruption */ /* Miscellaneous superblock corruption */
@ -176,7 +175,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Inode count in superblock is incorrect */ /* Inode count in superblock is incorrect */
{ PR_0_INODE_COUNT_WRONG, { PR_0_INODE_COUNT_WRONG,
N_("@i count in @S is %i, should be %j.\n"), N_("@i count in @S is %i, @s %j.\n"),
PROMPT_FIX, 0 }, PROMPT_FIX, 0 },
{ PR_0_HURD_CLEAR_FILETYPE, { PR_0_HURD_CLEAR_FILETYPE,
@ -185,7 +184,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Journal inode is invalid */ /* Journal inode is invalid */
{ PR_0_JOURNAL_BAD_INODE, { PR_0_JOURNAL_BAD_INODE,
N_("@S has a bad ext3 @j (@i %i).\n"), N_("@S has an @n ext3 @j (@i %i).\n"),
PROMPT_CLEAR, PR_PREEN_OK }, PROMPT_CLEAR, PR_PREEN_OK },
/* The external journal has (unsupported) multiple filesystems */ /* The external journal has (unsupported) multiple filesystems */
@ -233,7 +232,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Journal has data, but recovery flag is clear */ /* Journal has data, but recovery flag is clear */
{ PR_0_JOURNAL_RECOVERY_CLEAR, { PR_0_JOURNAL_RECOVERY_CLEAR,
N_("ext3 recovery flag clear, but @j has data.\n"), N_("ext3 recovery flag is clear, but @j has data.\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Ask if we should clear the journal */ /* Ask if we should clear the journal */
@ -278,7 +277,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Filesystem revision is 0, but feature flags are set */ /* Filesystem revision is 0, but feature flags are set */
{ PR_0_FS_REV_LEVEL, { PR_0_FS_REV_LEVEL,
"@f has feature flag(s) set, but is a revision 0 @f. ", N_("@f has feature flag(s) set, but is a revision 0 @f. "),
PROMPT_FIX, PR_PREEN_OK | PR_NO_OK }, PROMPT_FIX, PR_PREEN_OK | PR_NO_OK },
/* Journal superblock has an unknown read-only feature flag set */ /* Journal superblock has an unknown read-only feature flag set */
@ -298,7 +297,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Moving journal to hidden file */ /* Moving journal to hidden file */
{ PR_0_MOVE_JOURNAL, { PR_0_MOVE_JOURNAL,
N_("Moving @j from /%s to hidden inode.\n\n"), N_("Moving @j from /%s to hidden @i.\n\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Error moving journal to hidden file */ /* Error moving journal to hidden file */
@ -308,7 +307,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Clearing V2 journal superblock */ /* Clearing V2 journal superblock */
{ PR_0_CLEAR_V2_JOURNAL, { PR_0_CLEAR_V2_JOURNAL,
N_("Found invalid V2 @j @S fields (from V1 journal).\n" N_("Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n\n"), "Clearing fields beyond the V1 @j @S...\n\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
@ -325,7 +324,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Resize_inode not enabled, but resize inode is non-zero */ /* Resize_inode not enabled, but resize inode is non-zero */
{ PR_0_CLEAR_RESIZE_INODE, { PR_0_CLEAR_RESIZE_INODE,
N_("Resize_@i not enabled, but the resize inode is non-zero. "), N_("Resize_@i not enabled, but the resize @i is non-zero. "),
PROMPT_CLEAR, 0 }, PROMPT_CLEAR, 0 },
/* Resize inode invalid */ /* Resize inode invalid */
@ -351,7 +350,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Reserved inode has bad mode */ /* Reserved inode has bad mode */
{ PR_1_RESERVED_BAD_MODE, { PR_1_RESERVED_BAD_MODE,
N_("Reserved @i %i %Q has bad mode. "), N_("Reserved @i %i (%Q) has @n mode. "),
PROMPT_CLEAR, PR_PREEN_OK }, PROMPT_CLEAR, PR_PREEN_OK },
/* Deleted inode has zero dtime */ /* Deleted inode has zero dtime */
@ -458,9 +457,8 @@ static const struct e2fsck_problem problem_table[] = {
/* Bad primary block prompt */ /* Bad primary block prompt */
{ PR_1_BAD_PRIMARY_BLOCK_PROMPT, { PR_1_BAD_PRIMARY_BLOCK_PROMPT,
N_("You can clear the this @b (and hope for the best) from the\n" N_("You can remove this @b from the bad @b list and hope\n"
"bad @b list and hope that @b is really OK, but there are no\n" "that the @b is really OK. But there are no guarantees.\n\n"),
"guarantees.\n\n"),
PROMPT_CLEAR, PR_PREEN_NOMSG }, PROMPT_CLEAR, PR_PREEN_NOMSG },
/* Bad primary superblock */ /* Bad primary superblock */
@ -523,12 +521,12 @@ static const struct e2fsck_problem problem_table[] = {
/* Error allocating inode bitmap */ /* Error allocating inode bitmap */
{ PR_1_ALLOCATE_IBITMAP_ERROR, { PR_1_ALLOCATE_IBITMAP_ERROR,
"@A @i @B (%N): %m\n", N_("@A @i @B (%N): %m\n"),
PROMPT_NONE, PR_FATAL }, PROMPT_NONE, PR_FATAL },
/* Error allocating block bitmap */ /* Error allocating block bitmap */
{ PR_1_ALLOCATE_BBITMAP_ERROR, { PR_1_ALLOCATE_BBITMAP_ERROR,
"@A @b @B (%N): %m\n", N_("@A @b @B (%N): %m\n"),
PROMPT_NONE, PR_FATAL }, PROMPT_NONE, PR_FATAL },
/* Error allocating icount structure */ /* Error allocating icount structure */
@ -588,17 +586,17 @@ static const struct e2fsck_problem problem_table[] = {
/* Non-zero size for device, fifo or socket inode */ /* Non-zero size for device, fifo or socket inode */
{ PR_1_SET_NONZSIZE, { PR_1_SET_NONZSIZE,
"Special (@v/socket/fifo) @i %i has non-zero size. ", N_("Special (@v/socket/fifo) @i %i has non-zero size. "),
PROMPT_FIX, PR_PREEN_OK }, PROMPT_FIX, PR_PREEN_OK },
/* Filesystem revision is 0, but feature flags are set */ /* Filesystem revision is 0, but feature flags are set */
{ PR_1_FS_REV_LEVEL, { PR_1_FS_REV_LEVEL,
"@f has feature flag(s) set, but is a revision 0 @f. ", N_("@f has feature flag(s) set, but is a revision 0 @f. "),
PROMPT_FIX, PR_PREEN_OK | PR_NO_OK }, PROMPT_FIX, PR_PREEN_OK | PR_NO_OK },
/* Journal inode is not in use, but contains data */ /* Journal inode is not in use, but contains data */
{ PR_1_JOURNAL_INODE_NOT_CLEAR, { PR_1_JOURNAL_INODE_NOT_CLEAR,
"@j @i is not in use, but contains data. ", N_("@j @i is not in use, but contains data. "),
PROMPT_CLEAR, PR_PREEN_OK }, PROMPT_CLEAR, PR_PREEN_OK },
/* Journal has bad mode */ /* Journal has bad mode */
@ -608,7 +606,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Deal with inodes that were part of orphan linked list */ /* Deal with inodes that were part of orphan linked list */
{ PR_1_LOW_DTIME, { PR_1_LOW_DTIME,
N_("@i %i was part of the orphaned @i list. "), N_("@i %i was part of the @o @i list. "),
PROMPT_FIX, PR_LATCH_LOW_DTIME, 0 }, PROMPT_FIX, PR_LATCH_LOW_DTIME, 0 },
/* Deal with inodes that were part of corrupted orphan linked /* Deal with inodes that were part of corrupted orphan linked
@ -619,7 +617,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Error allocating refcount structure */ /* Error allocating refcount structure */
{ PR_1_ALLOCATE_REFCOUNT, { PR_1_ALLOCATE_REFCOUNT,
"@A refcount structure (%N): %m\n", N_("@A refcount structure (%N): %m\n"),
PROMPT_NONE, PR_FATAL }, PROMPT_NONE, PR_FATAL },
/* Error reading extended attribute block */ /* Error reading extended attribute block */
@ -639,7 +637,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Extended attribute reference count incorrect */ /* Extended attribute reference count incorrect */
{ PR_1_EXTATTR_REFCOUNT, { PR_1_EXTATTR_REFCOUNT,
N_("@a @b %b has reference count %B, should be %N. "), N_("@a @b %b has reference count %B, @s %N. "),
PROMPT_FIX, 0 }, PROMPT_FIX, 0 },
/* Error writing Extended Attribute block while fixing refcount */ /* Error writing Extended Attribute block while fixing refcount */
@ -649,12 +647,12 @@ static const struct e2fsck_problem problem_table[] = {
/* Multiple EA blocks not supported */ /* Multiple EA blocks not supported */
{ PR_1_EA_MULTI_BLOCK, { PR_1_EA_MULTI_BLOCK,
N_("@a @b %b has h_blocks > 1. "), N_("@a @b %b has h_@bs > 1. "),
PROMPT_CLEAR, 0}, PROMPT_CLEAR, 0},
/* Error allocating EA region allocation structure */ /* Error allocating EA region allocation structure */
{ PR_1_EA_ALLOC_REGION, { PR_1_EA_ALLOC_REGION,
N_("Error allocating @a @b %b. "), N_("@A @a @b %b. "),
PROMPT_ABORT, 0}, PROMPT_ABORT, 0},
/* Error EA allocation collision */ /* Error EA allocation collision */
@ -664,12 +662,12 @@ static const struct e2fsck_problem problem_table[] = {
/* Bad extended attribute name */ /* Bad extended attribute name */
{ PR_1_EA_BAD_NAME, { PR_1_EA_BAD_NAME,
N_("@a @b %b is corrupt (invalid name). "), N_("@a @b %b is corrupt (@n name). "),
PROMPT_CLEAR, 0}, PROMPT_CLEAR, 0},
/* Bad extended attribute value */ /* Bad extended attribute value */
{ PR_1_EA_BAD_VALUE, { PR_1_EA_BAD_VALUE,
N_("@a @b %b is corrupt (invalid value). "), N_("@a @b %b is corrupt (@n value). "),
PROMPT_CLEAR, 0}, PROMPT_CLEAR, 0},
/* Inode too big (latch question) */ /* Inode too big (latch question) */
@ -703,7 +701,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Invalid root node in HTREE directory */ /* Invalid root node in HTREE directory */
{ PR_1_HTREE_BADROOT, { PR_1_HTREE_BADROOT,
N_("@h %i has an invalid root node.\n"), N_("@h %i has an @n root node.\n"),
PROMPT_CLEAR_HTREE, PR_PREEN_OK }, PROMPT_CLEAR_HTREE, PR_PREEN_OK },
/* Unsupported hash version in HTREE directory */ /* Unsupported hash version in HTREE directory */
@ -734,45 +732,45 @@ static const struct e2fsck_problem problem_table[] = {
/* invalid inode->i_extra_isize */ /* invalid inode->i_extra_isize */
{ PR_1_EXTRA_ISIZE, { PR_1_EXTRA_ISIZE,
N_("@i %i has a extra size (%IS) which is invalid\n"), N_("@i %i has a extra size (%IS) which is @n\n"),
PROMPT_FIX, PR_PREEN_OK }, PROMPT_FIX, PR_PREEN_OK },
/* invalid ea entry->e_name_len */ /* invalid ea entry->e_name_len */
{ PR_1_ATTR_NAME_LEN, { PR_1_ATTR_NAME_LEN,
N_("@a in @i %i has a namelen (%N) which is invalid\n"), N_("@a in @i %i has a namelen (%N) which is @n\n"),
PROMPT_CLEAR, PR_PREEN_OK }, PROMPT_CLEAR, PR_PREEN_OK },
/* invalid ea entry->e_value_size */ /* invalid ea entry->e_value_size */
{ PR_1_ATTR_VALUE_SIZE, { PR_1_ATTR_VALUE_SIZE,
N_("@a in @i %i has a value size (%N) which is invalid\n"), N_("@a in @i %i has a value size (%N) which is @n\n"),
PROMPT_CLEAR, PR_PREEN_OK }, PROMPT_CLEAR, PR_PREEN_OK },
/* invalid ea entry->e_value_offs */ /* invalid ea entry->e_value_offs */
{ PR_1_ATTR_VALUE_OFFSET, { PR_1_ATTR_VALUE_OFFSET,
N_("@a in @i %i has a value offset (%N) which is invalid\n"), N_("@a in @i %i has a value offset (%N) which is @n\n"),
PROMPT_CLEAR, PR_PREEN_OK }, PROMPT_CLEAR, PR_PREEN_OK },
/* invalid ea entry->e_value_block */ /* invalid ea entry->e_value_block */
{ PR_1_ATTR_VALUE_BLOCK, { PR_1_ATTR_VALUE_BLOCK,
N_("@a in @i %i has a value block (%N) which is invalid (must be 0)\n"), N_("@a in @i %i has a value @b (%N) which is @n (must be 0)\n"),
PROMPT_CLEAR, PR_PREEN_OK }, PROMPT_CLEAR, PR_PREEN_OK },
/* invalid ea entry->e_hash */ /* invalid ea entry->e_hash */
{ PR_1_ATTR_HASH, { PR_1_ATTR_HASH,
N_("@a in @i %i has a hash (%N) which is invalid (must be 0)\n"), N_("@a in @i %i has a hash (%N) which is @n (must be 0)\n"),
PROMPT_CLEAR, PR_PREEN_OK }, PROMPT_CLEAR, PR_PREEN_OK },
/* Pass 1b errors */ /* Pass 1b errors */
/* Pass 1B: Rescan for duplicate/bad blocks */ /* Pass 1B: Rescan for duplicate/bad blocks */
{ PR_1B_PASS_HEADER, { PR_1B_PASS_HEADER,
N_("Duplicate @bs found... invoking duplicate @b passes.\n" N_("\nRunning additional passes to resolve @bs claimed by more than one @i...\n"
"Pass 1B: Rescan for duplicate/bad @bs\n"), "Pass 1B: Rescanning for @m @bs\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Duplicate/bad block(s) header */ /* Duplicate/bad block(s) header */
{ PR_1B_DUP_BLOCK_HEADER, { PR_1B_DUP_BLOCK_HEADER,
N_("Duplicate/bad @b(s) in @i %i:"), N_("@m @b(s) in @i %i:"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Duplicate/bad block(s) in inode */ /* Duplicate/bad block(s) in inode */
@ -792,7 +790,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Error allocating inode bitmap */ /* Error allocating inode bitmap */
{ PR_1B_ALLOCATE_IBITMAP_ERROR, { PR_1B_ALLOCATE_IBITMAP_ERROR,
N_("@A @i @B (inode_dup_map): %m\n"), N_("@A @i @B (@i_dup_map): %m\n"),
PROMPT_NONE, PR_FATAL }, PROMPT_NONE, PR_FATAL },
/* Error while iterating over blocks */ /* Error while iterating over blocks */
@ -802,25 +800,25 @@ static const struct e2fsck_problem problem_table[] = {
/* Error adjusting EA refcount */ /* Error adjusting EA refcount */
{ PR_1B_ADJ_EA_REFCOUNT, { PR_1B_ADJ_EA_REFCOUNT,
N_("Error addjusting refcount for @a @b %b (@i %i): %m\n"), N_("Error adjusting refcount for @a @b %b (@i %i): %m\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Pass 1C: Scan directories for inodes with dup blocks. */ /* Pass 1C: Scan directories for inodes with multiply-claimed blocks. */
{ PR_1C_PASS_HEADER, { PR_1C_PASS_HEADER,
N_("Pass 1C: Scan directories for @is with dup @bs.\n"), N_("Pass 1C: Scanning directories for @is with @m @bs.\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Pass 1D: Reconciling duplicate blocks */ /* Pass 1D: Reconciling multiply-claimed blocks */
{ PR_1D_PASS_HEADER, { PR_1D_PASS_HEADER,
N_("Pass 1D: Reconciling duplicate @bs\n"), N_("Pass 1D: Reconciling @m @bs\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* File has duplicate blocks */ /* File has duplicate blocks */
{ PR_1D_DUP_FILE, { PR_1D_DUP_FILE,
N_("File %Q (@i #%i, mod time %IM) \n" N_("File %Q (@i #%i, mod time %IM) \n"
" has %B duplicate @b(s), shared with %N file(s):\n"), " has %B @m @b(s), shared with %N file(s):\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* List of files sharing duplicate blocks */ /* List of files sharing duplicate blocks */
@ -835,12 +833,12 @@ static const struct e2fsck_problem problem_table[] = {
/* Report of how many duplicate/bad inodes */ /* Report of how many duplicate/bad inodes */
{ PR_1D_NUM_DUP_INODES, { PR_1D_NUM_DUP_INODES,
N_("(There are %N @is containing duplicate/bad @bs.)\n\n"), N_("(There are %N @is containing @m @bs.)\n\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Duplicated blocks already reassigned or cloned. */ /* Duplicated blocks already reassigned or cloned. */
{ PR_1D_DUP_BLOCKS_DEALT, { PR_1D_DUP_BLOCKS_DEALT,
N_("Duplicated @bs already reassigned or cloned.\n\n"), N_("@m @bs already reassigned or cloned.\n\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Clone duplicate/bad blocks? */ /* Clone duplicate/bad blocks? */
@ -864,12 +862,12 @@ static const struct e2fsck_problem problem_table[] = {
/* Bad inode number for '.' */ /* Bad inode number for '.' */
{ PR_2_BAD_INODE_DOT, { PR_2_BAD_INODE_DOT,
N_("Bad @i number for '.' in @d @i %i.\n"), N_("@n @i number for '.' in @d @i %i.\n"),
PROMPT_FIX, 0 }, PROMPT_FIX, 0 },
/* Directory entry has bad inode number */ /* Directory entry has bad inode number */
{ PR_2_BAD_INO, { PR_2_BAD_INO,
N_("@E has bad @i #: %Di.\n"), N_("@E has @n @i #: %Di.\n"),
PROMPT_CLEAR, 0 }, PROMPT_CLEAR, 0 },
/* Directory entry has deleted or unused inode */ /* Directory entry has deleted or unused inode */
@ -914,12 +912,12 @@ static const struct e2fsck_problem problem_table[] = {
/* First entry in directory inode doesn't contain '.' */ /* First entry in directory inode doesn't contain '.' */
{ PR_2_1ST_NOT_DOT, { PR_2_1ST_NOT_DOT,
N_("First @e '%Dn' (inode=%Di) in @d @i %i (%p) @s '.'\n"), N_("First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"),
PROMPT_FIX, 0 }, PROMPT_FIX, 0 },
/* Second entry in directory inode doesn't contain '..' */ /* Second entry in directory inode doesn't contain '..' */
{ PR_2_2ND_NOT_DOT_DOT, { PR_2_2ND_NOT_DOT_DOT,
N_("Second @e '%Dn' (inode=%Di) in @d @i %i @s '..'\n"), N_("Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"),
PROMPT_FIX, 0 }, PROMPT_FIX, 0 },
/* i_faddr should be zero */ /* i_faddr should be zero */
@ -949,7 +947,7 @@ static const struct e2fsck_problem problem_table[] = {
/* inode has bad mode */ /* inode has bad mode */
{ PR_2_BAD_MODE, { PR_2_BAD_MODE,
N_("@i %i (%Q) has a bad mode (%Im).\n"), N_("@i %i (%Q) has @n mode (%Im).\n"),
PROMPT_CLEAR, 0 }, PROMPT_CLEAR, 0 },
/* directory corrupted */ /* directory corrupted */
@ -1004,7 +1002,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Final rec_len is wrong */ /* Final rec_len is wrong */
{ PR_2_FINAL_RECLEN, { PR_2_FINAL_RECLEN,
N_("@E has rec_len of %Dr, should be %N.\n"), N_("@E has rec_len of %Dr, @s %N.\n"),
PROMPT_FIX, 0 }, PROMPT_FIX, 0 },
/* Error allocating icount structure */ /* Error allocating icount structure */
@ -1059,7 +1057,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Directory filetype incorrect */ /* Directory filetype incorrect */
{ PR_2_BAD_FILETYPE, { PR_2_BAD_FILETYPE,
N_("@E has an incorrect filetype (was %Dt, should be %N).\n"), N_("@E has an incorrect filetype (was %Dt, @s %N).\n"),
PROMPT_FIX, 0 }, PROMPT_FIX, 0 },
/* Directory filetype set on filesystem */ /* Directory filetype set on filesystem */
@ -1069,17 +1067,17 @@ static const struct e2fsck_problem problem_table[] = {
/* Directory filename is null */ /* Directory filename is null */
{ PR_2_NULL_NAME, { PR_2_NULL_NAME,
N_("@E has a zero-length name.\n"), N_("@E has a @z name.\n"),
PROMPT_CLEAR, 0 }, PROMPT_CLEAR, 0 },
/* Invalid symlink */ /* Invalid symlink */
{ PR_2_INVALID_SYMLINK, { PR_2_INVALID_SYMLINK,
N_("Symlink %Q (@i #%i) is invalid.\n"), N_("Symlink %Q (@i #%i) is @n.\n"),
PROMPT_CLEAR, 0 }, PROMPT_CLEAR, 0 },
/* i_file_acl (extended attribute block) is bad */ /* i_file_acl (extended attribute block) is bad */
{ PR_2_FILE_ACL_BAD, { PR_2_FILE_ACL_BAD,
N_("@a @b @F invalid (%If).\n"), N_("@a @b @F @n (%If).\n"),
PROMPT_CLEAR, 0 }, PROMPT_CLEAR, 0 },
/* Filesystem contains large files, but has no such flag in sb */ /* Filesystem contains large files, but has no such flag in sb */
@ -1109,7 +1107,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Clear invalid HTREE directory */ /* Clear invalid HTREE directory */
{ PR_2_HTREE_CLEAR, { PR_2_HTREE_CLEAR,
N_("Invalid @h %d (%q). "), PROMPT_CLEAR, 0 }, N_("@n @h %d (%q). "), PROMPT_CLEAR, 0 },
/* Bad block in htree interior node */ /* Bad block in htree interior node */
{ PR_2_HTREE_BADBLK, { PR_2_HTREE_BADBLK,
@ -1118,22 +1116,22 @@ static const struct e2fsck_problem problem_table[] = {
/* Error adjusting EA refcount */ /* Error adjusting EA refcount */
{ PR_2_ADJ_EA_REFCOUNT, { PR_2_ADJ_EA_REFCOUNT,
N_("Error addjusting refcount for @a @b %b (@i %i): %m\n"), N_("Error adjusting refcount for @a @b %b (@i %i): %m\n"),
PROMPT_NONE, PR_FATAL }, PROMPT_NONE, PR_FATAL },
/* Invalid HTREE root node */ /* Invalid HTREE root node */
{ PR_2_HTREE_BAD_ROOT, { PR_2_HTREE_BAD_ROOT,
N_("@p @h %d: root node is invalid\n"), N_("@p @h %d: root node is @n\n"),
PROMPT_CLEAR_HTREE, PR_PREEN_OK }, PROMPT_CLEAR_HTREE, PR_PREEN_OK },
/* Invalid HTREE limit */ /* Invalid HTREE limit */
{ PR_2_HTREE_BAD_LIMIT, { PR_2_HTREE_BAD_LIMIT,
N_("@p @h %d: node (%B) has bad limit (%N)\n"), N_("@p @h %d: node (%B) has @n limit (%N)\n"),
PROMPT_CLEAR_HTREE, PR_PREEN_OK }, PROMPT_CLEAR_HTREE, PR_PREEN_OK },
/* Invalid HTREE count */ /* Invalid HTREE count */
{ PR_2_HTREE_BAD_COUNT, { PR_2_HTREE_BAD_COUNT,
N_("@p @h %d: node (%B) has bad count (%N)\n"), N_("@p @h %d: node (%B) has @n count (%N)\n"),
PROMPT_CLEAR_HTREE, PR_PREEN_OK }, PROMPT_CLEAR_HTREE, PR_PREEN_OK },
/* HTREE interior node has out-of-order hashes in table */ /* HTREE interior node has out-of-order hashes in table */
@ -1141,9 +1139,9 @@ static const struct e2fsck_problem problem_table[] = {
N_("@p @h %d: node (%B) has an unordered hash table\n"), N_("@p @h %d: node (%B) has an unordered hash table\n"),
PROMPT_CLEAR_HTREE, PR_PREEN_OK }, PROMPT_CLEAR_HTREE, PR_PREEN_OK },
/* Node in HTREE directory has bad depth */ /* Node in HTREE directory has invalid depth */
{ PR_2_HTREE_BAD_DEPTH, { PR_2_HTREE_BAD_DEPTH,
N_("@p @h %d: node (%B) has bad depth\n"), N_("@p @h %d: node (%B) has @n depth\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Duplicate directory entry found */ /* Duplicate directory entry found */
@ -1245,7 +1243,7 @@ static const struct e2fsck_problem problem_table[] = {
/* Couldn't fix parent directory -- couldn't find it */ /* Couldn't fix parent directory -- couldn't find it */
{ PR_3_FIX_PARENT_NOFIND, { PR_3_FIX_PARENT_NOFIND,
N_("Couldn't fix parent of @i %i: Couldn't find parent @d entry\n\n"), N_("Couldn't fix parent of @i %i: Couldn't find parent @d @e\n\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Error allocating inode bitmap */ /* Error allocating inode bitmap */
@ -1324,12 +1322,12 @@ static const struct e2fsck_problem problem_table[] = {
/* Unattached zero-length inode */ /* Unattached zero-length inode */
{ PR_4_ZERO_LEN_INODE, { PR_4_ZERO_LEN_INODE,
"@u @z @i %i. ", N_("@u @z @i %i. "),
PROMPT_CLEAR, PR_PREEN_OK|PR_NO_OK }, PROMPT_CLEAR, PR_PREEN_OK|PR_NO_OK },
/* Unattached inode */ /* Unattached inode */
{ PR_4_UNATTACHED_INODE, { PR_4_UNATTACHED_INODE,
"@u @i %i\n", N_("@u @i %i\n"),
PROMPT_CONNECT, 0 }, PROMPT_CONNECT, 0 },
/* Inode ref count wrong */ /* Inode ref count wrong */
@ -1341,7 +1339,7 @@ static const struct e2fsck_problem problem_table[] = {
N_("WARNING: PROGRAMMING BUG IN E2FSCK!\n" N_("WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n" "\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
"@i_link_info[%i] is %N, @i.i_links_count is %Il. " "@i_link_info[%i] is %N, @i.i_links_count is %Il. "
"They should be the same!\n"), "They @s the same!\n"),
PROMPT_NONE, 0 }, PROMPT_NONE, 0 },
/* Pass 5 errors */ /* Pass 5 errors */
@ -1439,12 +1437,12 @@ static const struct e2fsck_problem problem_table[] = {
/* Error copying in replacement inode bitmap */ /* Error copying in replacement inode bitmap */
{ PR_5_COPY_IBITMAP_ERROR, { PR_5_COPY_IBITMAP_ERROR,
"Error copying in replacement @i @B: %m\n", N_("Error copying in replacement @i @B: %m\n"),
PROMPT_NONE, PR_FATAL }, PROMPT_NONE, PR_FATAL },
/* Error copying in replacement block bitmap */ /* Error copying in replacement block bitmap */
{ PR_5_COPY_BBITMAP_ERROR, { PR_5_COPY_BBITMAP_ERROR,
"Error copying in replacement @b @B: %m\n", N_("Error copying in replacement @b @B: %m\n"),
PROMPT_NONE, PR_FATAL }, PROMPT_NONE, PR_FATAL },
/* Block range not used, but marked in bitmap */ /* Block range not used, but marked in bitmap */

View File

@ -1,3 +1,17 @@
2005-06-19 Theodore Ts'o <tytso@mit.edu>
* at-expand.pl: Add an explanation of how the @-expansion and
%-expansion works in e2fsck/problem.c as part of the
"translator help".
* Makefile.in.in: Update e2fsprogs.pot if at-expand.pl has changed.
* fr.po: Update Franch translation
2005-06-05 Theodore Ts'o <tytso@mit.edu>
* nl.po: Add Dutch translation
2005-05-09 Theodore Ts'o <tytso@mit.edu> 2005-05-09 Theodore Ts'o <tytso@mit.edu>
* rw.po: Add Rwandan translation * rw.po: Add Rwandan translation

View File

@ -1 +1 @@
cs de es fr it sv tr pl rw cs de es fr it nl pl rw sv tr

View File

@ -99,7 +99,8 @@ stamp-po: $(srcdir)/$(DOMAIN).pot
# This target rebuilds $(DOMAIN).pot; it is an expensive operation. # This target rebuilds $(DOMAIN).pot; it is an expensive operation.
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed \
$(srcdir)/at-expand.pl
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
--files-from=$(srcdir)/POTFILES.in \ --files-from=$(srcdir)/POTFILES.in \

View File

@ -1,10 +1,71 @@
#!/usr/bin/perl #!/usr/bin/perl
my @translator_help = (
"#. The strings in e2fsck's problem.c can be very hard to translate,\n",
"#. since the strings are expanded in two different ways. First of all,\n",
"#. there is an \@-expansion, where strings like \"\@i\" are expanded to\n",
"#. \"inode\", and so on. In order to make it easier for translators, the\n",
"#. e2fsprogs po template file has been enhanced with comments that show\n",
"#. the \@-expansion, for the strings in the problem.c file.\n",
"#.\n",
"#. Translators are free to use the \@-expansion facility if they so\n",
"#. choose, by providing translations for strings in e2fsck/message.c.\n",
"#. These translation can completely replace an expansion; for example,\n",
"#. if \"bblock\" (which indicated that \"\@b\" would be expanded to \"block\")\n",
"#. is translated as \"ddatenverlust\", then \"\@d\" will be expanded to\n",
"#. \"datenverlust\". Alternatively, translators can simply not use the\n",
"#. \@-expansion facility at all.\n",
"#.\n",
"#. The second expansion which is done for e2fsck's problem.c messages is\n",
"#. a dynamic %-expansion, which expands %i as an inode number, and so\n",
"#. on. A table of these expansions can be found below. Note that\n",
"#. %-expressions that begin with \"%D\" and \"%I\" are two-character\n",
"#. expansions; so for example, \"%Iu\" expands to the inode's user id\n",
"#. ownership field (inode->i_uid).\n",
"#. \n",
"#. %b <blk> block number\n",
"#. %B <blkcount> integer\n",
"#. %c <blk2> block number\n",
"#. %Di <dirent> -> ino inode number\n",
"#. %Dn <dirent> -> name string\n",
"#. %Dr <dirent> -> rec_len\n",
"#. %Dl <dirent> -> name_len\n",
"#. %Dt <dirent> -> filetype\n",
"#. %d <dir> inode number\n",
"#. %g <group> integer\n",
"#. %i <ino> inode number\n",
"#. %Is <inode> -> i_size\n",
"#. %IS <inode> -> i_extra_isize\n",
"#. %Ib <inode> -> i_blocks\n",
"#. %Il <inode> -> i_links_count\n",
"#. %Im <inode> -> i_mode\n",
"#. %IM <inode> -> i_mtime\n",
"#. %IF <inode> -> i_faddr\n",
"#. %If <inode> -> i_file_acl\n",
"#. %Id <inode> -> i_dir_acl\n",
"#. %Iu <inode> -> i_uid\n",
"#. %Ig <inode> -> i_gid\n",
"#. %j <ino2> inode number\n",
"#. %m <com_err error message>\n",
"#. %N <num>\n",
"#. %p ext2fs_get_pathname of directory <ino>\n",
"#. %P ext2fs_get_pathname of <dirent>->ino with <ino2> as\n",
"#. the containing directory. (If dirent is NULL\n",
"#. then return the pathname of directory <ino2>)\n",
"#. %q ext2fs_get_pathname of directory <dir>\n",
"#. %Q ext2fs_get_pathname of directory <ino> with <dir> as\n",
"#. the containing directory.\n",
"#. %s <str> miscellaneous string\n",
"#. %S backup superblock\n",
"#. %X <num> hexadecimal format\n",
"#.\n");
my $is_problem_file = 0; my $is_problem_file = 0;
my $save_msg; my $save_msg;
my $msg_accum = ""; my $msg_accum = "";
my $msg; my $msg;
my $expanded = 0; my $expanded = 0;
my $lines = 0;
sub do_expand { sub do_expand {
$msg =~ s/\@a/extended attribute/g; $msg =~ s/\@a/extended attribute/g;
@ -26,6 +87,8 @@ sub do_expand {
$msg =~ s/\@h/HTREE directory inode/g; $msg =~ s/\@h/HTREE directory inode/g;
$msg =~ s/\@l/lost+found/g; $msg =~ s/\@l/lost+found/g;
$msg =~ s/\@L/is a link/g; $msg =~ s/\@L/is a link/g;
$msg =~ s/\@m/multiply-claimed/g;
$msg =~ s/\@n/invalid/g;
$msg =~ s/\@o/orphaned/g; $msg =~ s/\@o/orphaned/g;
$msg =~ s/\@p/problem in/g; $msg =~ s/\@p/problem in/g;
$msg =~ s/\@r/root inode/g; $msg =~ s/\@r/root inode/g;
@ -39,6 +102,10 @@ sub do_expand {
while (<>) { while (<>) {
$lines++;
if ($lines == 6) {
print @translator_help;
}
if (/^#: /) if (/^#: /)
{ {
$is_problem_file = (/^#: e2fsck\/problem/) ? 1 : 0; $is_problem_file = (/^#: e2fsck\/problem/) ? 1 : 0;
@ -52,7 +119,7 @@ while (<>) {
} }
&do_expand(); &do_expand();
if ($msg ne "") { if ($msg ne "") {
$msg_accum = $msg_accum . "#. \@-expand: $msg\n"; $msg_accum = $msg_accum . "#. \@-expanded: $msg\n";
} }
next; next;
} }
@ -63,7 +130,7 @@ while (<>) {
$expanded++; $expanded++;
} }
&do_expand(); &do_expand();
$msg_accum = $msg_accum . "#. \@-expand: $msg\n"; $msg_accum = $msg_accum . "#. \@-expanded: $msg\n";
next; next;
} }
if (/^msgstr / && $is_problem_file) { if (/^msgstr / && $is_problem_file) {

BIN
po/cs.gmo

Binary file not shown.

1445
po/cs.po

File diff suppressed because it is too large Load Diff

BIN
po/de.gmo

Binary file not shown.

1445
po/de.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

BIN
po/es.gmo

Binary file not shown.

1446
po/es.po

File diff suppressed because it is too large Load Diff

BIN
po/fr.gmo

Binary file not shown.

1539
po/fr.po

File diff suppressed because it is too large Load Diff

1427
po/it.po

File diff suppressed because it is too large Load Diff

BIN
po/nl.gmo Normal file

Binary file not shown.

4437
po/nl.po Normal file

File diff suppressed because it is too large Load Diff

BIN
po/pl.gmo

Binary file not shown.

1539
po/pl.po

File diff suppressed because it is too large Load Diff

BIN
po/rw.gmo

Binary file not shown.

1406
po/rw.po

File diff suppressed because it is too large Load Diff

BIN
po/sv.gmo

Binary file not shown.

1571
po/sv.po

File diff suppressed because it is too large Load Diff

BIN
po/tr.gmo

Binary file not shown.

1653
po/tr.po

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@ Fix? yes
Entry 'root' in /test (14) is a link to the root inode. Entry 'root' in /test (14) is a link to the root inode.
Clear? yes Clear? yes
Entry 'badino' in /test (14) has bad inode #: 123456. Entry 'badino' in /test (14) has invalid inode #: 123456.
Clear? yes Clear? yes
Entry 'dot' in /test (14) is a link to '.' Clear? yes Entry 'dot' in /test (14) is a link to '.' Clear? yes

View File

@ -4,7 +4,7 @@ Pass 1: Checking inodes, blocks, and sizes
Inode 12, i_blocks is 2, should be 0. Fix? yes Inode 12, i_blocks is 2, should be 0. Fix? yes
Pass 2: Checking directory structure Pass 2: Checking directory structure
Inode 12 (/motd) has a bad mode (0110444). Inode 12 (/motd) has invalid mode (0110444).
Clear? yes Clear? yes
i_file_acl for inode 13 (/timings) is 39, should be zero. i_file_acl for inode 13 (/timings) is 39, should be zero.

View File

@ -1,4 +1,4 @@
Superblock has a bad ext3 journal (inode 8). Superblock has an invalid ext3 journal (inode 8).
Clear? yes Clear? yes
*** ext3 journal has been deleted - filesystem is now ext2 only *** *** ext3 journal has been deleted - filesystem is now ext2 only ***

View File

@ -4,18 +4,16 @@ Pass 1: Checking inodes, blocks, and sizes
The primary superblock (1) is on the bad block list. The primary superblock (1) is on the bad block list.
If the block is really bad, the filesystem can not be fixed. If the block is really bad, the filesystem can not be fixed.
You can clear the this block (and hope for the best) from the You can remove this block from the bad block list and hope
bad block list and hope that block is really OK, but there are no that the block is really OK. But there are no guarantees.
guarantees.
Clear? yes Clear? yes
Block 2 in the primary group descriptors is on the bad block list Block 2 in the primary group descriptors is on the bad block list
If the block is really bad, the filesystem can not be fixed. If the block is really bad, the filesystem can not be fixed.
You can clear the this block (and hope for the best) from the You can remove this block from the bad block list and hope
bad block list and hope that block is really OK, but there are no that the block is really OK. But there are no guarantees.
guarantees.
Clear? yes Clear? yes

View File

@ -4,29 +4,30 @@ Pass 1: Checking inodes, blocks, and sizes
Group 0's inode bitmap (4) is bad. Relocate? yes Group 0's inode bitmap (4) is bad. Relocate? yes
Relocating group 0's inode bitmap from 4 to 43... Relocating group 0's inode bitmap from 4 to 43...
Duplicate blocks found... invoking duplicate block passes.
Pass 1B: Rescan for duplicate/bad blocks Running additional passes to resolve blocks claimed by more than one inode...
Duplicate/bad block(s) in inode 2: 21 Pass 1B: Rescanning for multiply-claimed blocks
Duplicate/bad block(s) in inode 11: 9 10 11 12 13 14 15 16 17 18 19 20 Multiply-claimed block(s) in inode 2: 21
Duplicate/bad block(s) in inode 12: 25 26 Multiply-claimed block(s) in inode 11: 9 10 11 12 13 14 15 16 17 18 19 20
Pass 1C: Scan directories for inodes with dup blocks. Multiply-claimed block(s) in inode 12: 25 26
Pass 1D: Reconciling duplicate blocks Pass 1C: Scanning directories for inodes with multiply-claimed blocks.
(There are 3 inodes containing duplicate/bad blocks.) Pass 1D: Reconciling multiply-claimed blocks
(There are 3 inodes containing multiply-claimed blocks.)
File / (inode #2, mod time Sun Jan 2 08:29:13 1994) File / (inode #2, mod time Sun Jan 2 08:29:13 1994)
has 1 duplicate block(s), shared with 1 file(s): has 1 multiply-claimed block(s), shared with 1 file(s):
<The bad blocks inode> (inode #1, mod time Sun Jul 17 00:47:58 1994) <The bad blocks inode> (inode #1, mod time Sun Jul 17 00:47:58 1994)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
File /lost+found (inode #11, mod time Sun Jan 2 08:28:40 1994) File /lost+found (inode #11, mod time Sun Jan 2 08:28:40 1994)
has 12 duplicate block(s), shared with 1 file(s): has 12 multiply-claimed block(s), shared with 1 file(s):
<The bad blocks inode> (inode #1, mod time Sun Jul 17 00:47:58 1994) <The bad blocks inode> (inode #1, mod time Sun Jul 17 00:47:58 1994)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
File /termcap (inode #12, mod time Sun Jan 2 08:29:13 1994) File /termcap (inode #12, mod time Sun Jan 2 08:29:13 1994)
has 2 duplicate block(s), shared with 1 file(s): has 2 multiply-claimed block(s), shared with 1 file(s):
<The bad blocks inode> (inode #1, mod time Sun Jul 17 00:47:58 1994) <The bad blocks inode> (inode #1, mod time Sun Jul 17 00:47:58 1994)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
Pass 2: Checking directory structure Pass 2: Checking directory structure
Pass 3: Checking directory connectivity Pass 3: Checking directory connectivity

View File

@ -1,23 +1,24 @@
Filesystem did not have a UUID; generating one. Filesystem did not have a UUID; generating one.
Pass 1: Checking inodes, blocks, and sizes Pass 1: Checking inodes, blocks, and sizes
Duplicate blocks found... invoking duplicate block passes.
Pass 1B: Rescan for duplicate/bad blocks Running additional passes to resolve blocks claimed by more than one inode...
Duplicate/bad block(s) in inode 12: 25 26 Pass 1B: Rescanning for multiply-claimed blocks
Duplicate/bad block(s) in inode 13: 25 26 Multiply-claimed block(s) in inode 12: 25 26
Pass 1C: Scan directories for inodes with dup blocks. Multiply-claimed block(s) in inode 13: 25 26
Pass 1D: Reconciling duplicate blocks Pass 1C: Scanning directories for inodes with multiply-claimed blocks.
(There are 2 inodes containing duplicate/bad blocks.) Pass 1D: Reconciling multiply-claimed blocks
(There are 2 inodes containing multiply-claimed blocks.)
File /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993) File /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993)
has 2 duplicate block(s), shared with 1 file(s): has 2 multiply-claimed block(s), shared with 1 file(s):
/motd (inode #13, mod time Tue Sep 21 03:19:20 1993) /motd (inode #13, mod time Tue Sep 21 03:19:20 1993)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
File /motd (inode #13, mod time Tue Sep 21 03:19:20 1993) File /motd (inode #13, mod time Tue Sep 21 03:19:20 1993)
has 2 duplicate block(s), shared with 1 file(s): has 2 multiply-claimed block(s), shared with 1 file(s):
/termcap (inode #12, mod time Tue Sep 21 03:19:14 1993) /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993)
Duplicated blocks already reassigned or cloned. Multiply-claimed blocks already reassigned or cloned.
Pass 2: Checking directory structure Pass 2: Checking directory structure
Pass 3: Checking directory connectivity Pass 3: Checking directory connectivity

View File

@ -1,30 +1,31 @@
Filesystem did not have a UUID; generating one. Filesystem did not have a UUID; generating one.
Pass 1: Checking inodes, blocks, and sizes Pass 1: Checking inodes, blocks, and sizes
Duplicate blocks found... invoking duplicate block passes.
Pass 1B: Rescan for duplicate/bad blocks Running additional passes to resolve blocks claimed by more than one inode...
Duplicate/bad block(s) in inode 12: 25 26 Pass 1B: Rescanning for multiply-claimed blocks
Duplicate/bad block(s) in inode 13: 25 26 57 58 Multiply-claimed block(s) in inode 12: 25 26
Duplicate/bad block(s) in inode 14: 57 58 Multiply-claimed block(s) in inode 13: 25 26 57 58
Pass 1C: Scan directories for inodes with dup blocks. Multiply-claimed block(s) in inode 14: 57 58
Pass 1D: Reconciling duplicate blocks Pass 1C: Scanning directories for inodes with multiply-claimed blocks.
(There are 3 inodes containing duplicate/bad blocks.) Pass 1D: Reconciling multiply-claimed blocks
(There are 3 inodes containing multiply-claimed blocks.)
File /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993) File /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993)
has 2 duplicate block(s), shared with 1 file(s): has 2 multiply-claimed block(s), shared with 1 file(s):
/motd (inode #13, mod time Tue Sep 21 03:19:20 1993) /motd (inode #13, mod time Tue Sep 21 03:19:20 1993)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
File /motd (inode #13, mod time Tue Sep 21 03:19:20 1993) File /motd (inode #13, mod time Tue Sep 21 03:19:20 1993)
has 4 duplicate block(s), shared with 2 file(s): has 4 multiply-claimed block(s), shared with 2 file(s):
/pass1.c (inode #14, mod time Tue Sep 21 04:28:37 1993) /pass1.c (inode #14, mod time Tue Sep 21 04:28:37 1993)
/termcap (inode #12, mod time Tue Sep 21 03:19:14 1993) /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
File /pass1.c (inode #14, mod time Tue Sep 21 04:28:37 1993) File /pass1.c (inode #14, mod time Tue Sep 21 04:28:37 1993)
has 2 duplicate block(s), shared with 1 file(s): has 2 multiply-claimed block(s), shared with 1 file(s):
/motd (inode #13, mod time Tue Sep 21 03:19:20 1993) /motd (inode #13, mod time Tue Sep 21 03:19:20 1993)
Duplicated blocks already reassigned or cloned. Multiply-claimed blocks already reassigned or cloned.
Pass 2: Checking directory structure Pass 2: Checking directory structure
Pass 3: Checking directory connectivity Pass 3: Checking directory connectivity

View File

@ -1,26 +1,27 @@
Pass 1: Checking inodes, blocks, and sizes Pass 1: Checking inodes, blocks, and sizes
Inode 16, i_blocks is 22, should be 24. Fix? yes Inode 16, i_blocks is 22, should be 24. Fix? yes
Duplicate blocks found... invoking duplicate block passes.
Pass 1B: Rescan for duplicate/bad blocks Running additional passes to resolve blocks claimed by more than one inode...
Duplicate/bad block(s) in inode 11: 24 24 Pass 1B: Rescanning for multiply-claimed blocks
Duplicate/bad block(s) in inode 14: 69 69 Multiply-claimed block(s) in inode 11: 24 24
Duplicate/bad block(s) in inode 16: 99 99 Multiply-claimed block(s) in inode 14: 69 69
Pass 1C: Scan directories for inodes with dup blocks. Multiply-claimed block(s) in inode 16: 99 99
Pass 1D: Reconciling duplicate blocks Pass 1C: Scanning directories for inodes with multiply-claimed blocks.
(There are 3 inodes containing duplicate/bad blocks.) Pass 1D: Reconciling multiply-claimed blocks
(There are 3 inodes containing multiply-claimed blocks.)
File /lost+found (inode #11, mod time Mon Sep 20 03:26:36 1993) File /lost+found (inode #11, mod time Mon Sep 20 03:26:36 1993)
has 2 duplicate block(s), shared with 0 file(s): has 2 multiply-claimed block(s), shared with 0 file(s):
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
File /pass1.c (inode #14, mod time Tue Sep 21 04:28:37 1993) File /pass1.c (inode #14, mod time Tue Sep 21 04:28:37 1993)
has 2 duplicate block(s), shared with 0 file(s): has 2 multiply-claimed block(s), shared with 0 file(s):
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
File /e2fsck (inode #16, mod time Tue Sep 21 04:32:22 1993) File /e2fsck (inode #16, mod time Tue Sep 21 04:32:22 1993)
has 2 duplicate block(s), shared with 0 file(s): has 2 multiply-claimed block(s), shared with 0 file(s):
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
Pass 2: Checking directory structure Pass 2: Checking directory structure
Directory inode 11, block 12, offset 0: directory corrupted Directory inode 11, block 12, offset 0: directory corrupted

View File

@ -1,18 +1,19 @@
Resize inode not valid. Recreate? yes Resize inode not valid. Recreate? yes
Pass 1: Checking inodes, blocks, and sizes Pass 1: Checking inodes, blocks, and sizes
Duplicate blocks found... invoking duplicate block passes.
Pass 1B: Rescan for duplicate/bad blocks Running additional passes to resolve blocks claimed by more than one inode...
Duplicate/bad block(s) in inode 7: 4 5 6 7 Pass 1B: Rescanning for multiply-claimed blocks
Duplicate/bad block(s) in inode 12: 4 5 6 7 Multiply-claimed block(s) in inode 7: 4 5 6 7
Pass 1C: Scan directories for inodes with dup blocks. Multiply-claimed block(s) in inode 12: 4 5 6 7
Pass 1D: Reconciling duplicate blocks Pass 1C: Scanning directories for inodes with multiply-claimed blocks.
(There are 1 inodes containing duplicate/bad blocks.) Pass 1D: Reconciling multiply-claimed blocks
(There are 1 inodes containing multiply-claimed blocks.)
File /debugfs (inode #12, mod time Mon Apr 11 00:00:00 2005) File /debugfs (inode #12, mod time Mon Apr 11 00:00:00 2005)
has 4 duplicate block(s), shared with 1 file(s): has 4 multiply-claimed block(s), shared with 1 file(s):
<The group descriptor inode> (inode #7, mod time Mon Apr 11 06:13:20 2005) <The group descriptor inode> (inode #7, mod time Mon Apr 11 06:13:20 2005)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
Pass 2: Checking directory structure Pass 2: Checking directory structure
Pass 3: Checking directory connectivity Pass 3: Checking directory connectivity

View File

@ -5,33 +5,34 @@ Inode 12, i_size is 4096, should be 5120. Fix? yes
Inode 13, i_size is 0, should be 2048. Fix? yes Inode 13, i_size is 0, should be 2048. Fix? yes
Duplicate blocks found... invoking duplicate block passes.
Pass 1B: Rescan for duplicate/bad blocks Running additional passes to resolve blocks claimed by more than one inode...
Duplicate/bad block(s) in inode 12: 3 4 6 1 Pass 1B: Rescanning for multiply-claimed blocks
Duplicate/bad block(s) in inode 13: 2 3 Multiply-claimed block(s) in inode 12: 3 4 6 1
Duplicate/bad block(s) in inode 14: 2 Multiply-claimed block(s) in inode 13: 2 3
Pass 1C: Scan directories for inodes with dup blocks. Multiply-claimed block(s) in inode 14: 2
Pass 1D: Reconciling duplicate blocks Pass 1C: Scanning directories for inodes with multiply-claimed blocks.
(There are 3 inodes containing duplicate/bad blocks.) Pass 1D: Reconciling multiply-claimed blocks
(There are 3 inodes containing multiply-claimed blocks.)
File /foo (inode #12, mod time Thu Apr 28 17:57:53 1994) File /foo (inode #12, mod time Thu Apr 28 17:57:53 1994)
has 4 duplicate block(s), shared with 2 file(s): has 4 multiply-claimed block(s), shared with 2 file(s):
<filesystem metadata> <filesystem metadata>
/bar (inode #13, mod time Thu Aug 5 07:17:17 1999) /bar (inode #13, mod time Thu Aug 5 07:17:17 1999)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
File /bar (inode #13, mod time Thu Aug 5 07:17:17 1999) File /bar (inode #13, mod time Thu Aug 5 07:17:17 1999)
has 2 duplicate block(s), shared with 3 file(s): has 2 multiply-claimed block(s), shared with 3 file(s):
<filesystem metadata> <filesystem metadata>
/foo (inode #12, mod time Thu Apr 28 17:57:53 1994) /foo (inode #12, mod time Thu Apr 28 17:57:53 1994)
/quux (inode #14, mod time Thu Aug 5 07:18:09 1999) /quux (inode #14, mod time Thu Aug 5 07:18:09 1999)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
File /quux (inode #14, mod time Thu Aug 5 07:18:09 1999) File /quux (inode #14, mod time Thu Aug 5 07:18:09 1999)
has 1 duplicate block(s), shared with 2 file(s): has 1 multiply-claimed block(s), shared with 2 file(s):
<filesystem metadata> <filesystem metadata>
/bar (inode #13, mod time Thu Aug 5 07:17:17 1999) /bar (inode #13, mod time Thu Aug 5 07:17:17 1999)
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
Pass 2: Checking directory structure Pass 2: Checking directory structure
Directory inode 12, block 1, offset 0: directory corrupted Directory inode 12, block 1, offset 0: directory corrupted

View File

@ -1,17 +1,18 @@
Filesystem did not have a UUID; generating one. Filesystem did not have a UUID; generating one.
Pass 1: Checking inodes, blocks, and sizes Pass 1: Checking inodes, blocks, and sizes
Duplicate blocks found... invoking duplicate block passes.
Pass 1B: Rescan for duplicate/bad blocks Running additional passes to resolve blocks claimed by more than one inode...
Duplicate/bad block(s) in inode 12: 2 3 1 Pass 1B: Rescanning for multiply-claimed blocks
Pass 1C: Scan directories for inodes with dup blocks. Multiply-claimed block(s) in inode 12: 2 3 1
Pass 1D: Reconciling duplicate blocks Pass 1C: Scanning directories for inodes with multiply-claimed blocks.
(There are 1 inodes containing duplicate/bad blocks.) Pass 1D: Reconciling multiply-claimed blocks
(There are 1 inodes containing multiply-claimed blocks.)
File /termcap (inode #12, mod time Sun Jan 2 08:29:13 1994) File /termcap (inode #12, mod time Sun Jan 2 08:29:13 1994)
has 3 duplicate block(s), shared with 1 file(s): has 3 multiply-claimed block(s), shared with 1 file(s):
<filesystem metadata> <filesystem metadata>
Clone duplicate/bad blocks? yes Clone multiply-claimed blocks? yes
Pass 2: Checking directory structure Pass 2: Checking directory structure
Pass 3: Checking directory connectivity Pass 3: Checking directory connectivity

View File

@ -3,7 +3,7 @@ Pass 2: Checking directory structure
Problem in HTREE directory inode 12929: node (531) has bad max hash Problem in HTREE directory inode 12929: node (531) has bad max hash
Problem in HTREE directory inode 12929: node (993) referenced twice Problem in HTREE directory inode 12929: node (993) referenced twice
Problem in HTREE directory inode 12929: node (1061) has bad min hash Problem in HTREE directory inode 12929: node (1061) has bad min hash
Problem in HTREE directory inode 12929: node (1062) has bad depth Problem in HTREE directory inode 12929: node (1062) has invalid depth
Problem in HTREE directory inode 12929: node (1062) has bad max hash Problem in HTREE directory inode 12929: node (1062) has bad max hash
Problem in HTREE directory inode 12929: node (1062) not referenced Problem in HTREE directory inode 12929: node (1062) not referenced
Invalid HTREE directory inode 12929 (/test2). Clear? yes Invalid HTREE directory inode 12929 (/test2). Clear? yes

View File

@ -20,10 +20,10 @@ Pass 2: Checking directory structure
Problem in HTREE directory inode 80065: node (0) has an unordered hash table Problem in HTREE directory inode 80065: node (0) has an unordered hash table
Clear HTree index? yes Clear HTree index? yes
Problem in HTREE directory inode 86737: node (0) has bad limit (511) Problem in HTREE directory inode 86737: node (0) has invalid limit (511)
Clear HTree index? yes Clear HTree index? yes
Problem in HTREE directory inode 93409: node (0) has bad count (234) Problem in HTREE directory inode 93409: node (0) has invalid count (234)
Clear HTree index? yes Clear HTree index? yes
Problem in HTREE directory inode 73393: node (1) has bad min hash Problem in HTREE directory inode 73393: node (1) has bad min hash

View File

@ -1,9 +1,8 @@
Note: if there is several inode or block bitmap blocks Note: if several inode or block bitmap blocks or part
which require relocation, or one part of the inode table of the inode table require relocation, you may wish to try
which must be moved, you may wish to try running e2fsck running e2fsck with the '-b 8193' option first. The problem
with the '-b 8193' option first. The problem may lie only may lie only with the primary block group descriptors, and
with the primary block group descriptor, and the backup the backup block group descriptors may be OK.
block group descriptor may be OK.
Block bitmap for group 0 is not in group. (block 4096) Block bitmap for group 0 is not in group. (block 4096)
Relocate? yes Relocate? yes

View File

@ -1,9 +1,8 @@
Note: if there is several inode or block bitmap blocks Note: if several inode or block bitmap blocks or part
which require relocation, or one part of the inode table of the inode table require relocation, you may wish to try
which must be moved, you may wish to try running e2fsck running e2fsck with the '-b 8193' option first. The problem
with the '-b 8193' option first. The problem may lie only may lie only with the primary block group descriptors, and
with the primary block group descriptor, and the backup the backup block group descriptors may be OK.
block group descriptor may be OK.
Inode bitmap for group 0 is not in group. (block 4000) Inode bitmap for group 0 is not in group. (block 4000)
Relocate? yes Relocate? yes

View File

@ -1,9 +1,8 @@
Note: if there is several inode or block bitmap blocks Note: if several inode or block bitmap blocks or part
which require relocation, or one part of the inode table of the inode table require relocation, you may wish to try
which must be moved, you may wish to try running e2fsck running e2fsck with the '-b 8193' option first. The problem
with the '-b 8193' option first. The problem may lie only may lie only with the primary block group descriptors, and
with the primary block group descriptor, and the backup the backup block group descriptors may be OK.
block group descriptor may be OK.
Inode table for group 0 is not in group. (block 40000) Inode table for group 0 is not in group. (block 40000)
WARNING: SEVERE DATA LOSS POSSIBLE. WARNING: SEVERE DATA LOSS POSSIBLE.

View File

@ -1,4 +1,4 @@
Superblock has a bad ext3 journal (inode 8). Superblock has an invalid ext3 journal (inode 8).
Clear? yes Clear? yes
*** ext3 journal has been deleted - filesystem is now ext2 only *** *** ext3 journal has been deleted - filesystem is now ext2 only ***

View File

@ -1,8 +1,7 @@
which require relocation, or one part of the inode table of the inode table require relocation, you may wish to try
which must be moved, you may wish to try running e2fsck running e2fsck with the '-b 8193' option first. The problem
with the '-b 8193' option first. The problem may lie only may lie only with the primary block group descriptors, and
with the primary block group descriptor, and the backup the backup block group descriptors may be OK.
block group descriptor may be OK.
test_filesys: Block bitmap for group 0 is not in group. (block 0) test_filesys: Block bitmap for group 0 is not in group. (block 0)

View File

@ -22,7 +22,7 @@ Inode 13 ref count is 4, should be 3. Fix? yes
i_file_acl for inode 28 (...) is 4294967295, should be zero. i_file_acl for inode 28 (...) is 4294967295, should be zero.
Clear? yes Clear? yes
Inode 28 (...) has a bad mode (0177777). Inode 28 (...) has invalid mode (0177777).
Clear? yes Clear? yes
Pass 5: Checking group summary information Pass 5: Checking group summary information