From 30db7954c7165bc77693054f135a1466f2594027 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 10 Jul 2014 15:33:57 -0400 Subject: [PATCH 01/15] mke2fs: fix fencepost error when calling strncat There were other protections which would prevent a buffer overflow from happening, but we should fix this nevertheless. Addresses-Coverity-Bug: #1225003 Signed-off-by: Theodore Ts'o --- misc/mk_hugefiles.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/mk_hugefiles.c b/misc/mk_hugefiles.c index ea42b6cb..41280f08 100644 --- a/misc/mk_hugefiles.c +++ b/misc/mk_hugefiles.c @@ -188,7 +188,7 @@ static blk64_t get_partition_start(const char *device_name) cp = search_sysfs_block(st.st_rdev, path); if (!cp) return 0; - strncat(path, "/start", SYSFS_PATH_LEN); + strncat(path, "/start", SYSFS_PATH_LEN-1); f = fopen(path, "r"); if (!f) return 0; From 599915f080dc0f62a3e800c5bc8fe31ae8b45707 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 10 Jul 2014 15:54:42 -0400 Subject: [PATCH 02/15] Use sys/syscall.h instead of syscall.h Most systems have a backwards compatibility symlink in /usr/include/syscall.h to /usr/include/sys/syscall.h, but sys/syscall.h is the documented location of the header file. Fix two locations where we were using instead of . Signed-off-by: Theodore Ts'o --- lib/blkid/llseek.c | 2 +- lib/ext2fs/llseek.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/blkid/llseek.c b/lib/blkid/llseek.c index 658acc97..1cee34b4 100644 --- a/lib/blkid/llseek.c +++ b/lib/blkid/llseek.c @@ -36,7 +36,7 @@ #define my_llseek lseek64 #elif defined(HAVE_LLSEEK) -#include +#include #ifndef HAVE_LLSEEK_PROTOTYPE extern long long llseek(int fd, long long offset, int origin); diff --git a/lib/ext2fs/llseek.c b/lib/ext2fs/llseek.c index c3a98a2c..2730f20b 100644 --- a/lib/ext2fs/llseek.c +++ b/lib/ext2fs/llseek.c @@ -37,7 +37,7 @@ #else #if defined(HAVE_LLSEEK) -#include +#include #ifndef HAVE_LLSEEK_PROTOTYPE extern long long llseek (int fd, long long offset, int origin); From a34c72ab2d3a0e6573d95f5be8d11492eafc7fb0 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 10 Jul 2014 16:26:14 -0400 Subject: [PATCH 03/15] lib/ext2fs: Only build tst_libext2fs for make check It's only necessary to build tst_libext2fs when running "make check". Also make sure the links of the tst_* programs are done with $(ALL_LDFLAGS). Signed-off-by: Theodore Ts'o --- lib/ext2fs/Makefile.in | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/lib/ext2fs/Makefile.in b/lib/ext2fs/Makefile.in index 6cc299d9..4fc149a3 100644 --- a/lib/ext2fs/Makefile.in +++ b/lib/ext2fs/Makefile.in @@ -220,7 +220,7 @@ BSDLIB_INSTALL_DIR = $(root_libdir) @MAKEFILE_BSDLIB@ @MAKEFILE_PROFILE@ -all:: ext2fs.pc tst_libext2fs +all:: ext2fs.pc .c.o: $(E) " CC $<" @@ -394,7 +394,7 @@ filefrag.o: $(top_srcdir)/debugfs/filefrag.c tst_libext2fs.o: $(srcdir)/tst_libext2fs.c $(E) " CC $<" - $(Q) $(CC) $(ALL_CFLAGS) $(DEPEND_CFLAGS) -c $< -o $@ + $(Q) $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(DEPEND_CFLAGS) -c $< -o $@ tst_bitmaps_cmd.c: tst_bitmaps_cmd.ct $(E) " MK_CMDS $@" @@ -405,42 +405,43 @@ tst_bitmaps: tst_bitmaps.o tst_bitmaps_cmd.o $(srcdir)/blkmap64_rb.c \ $(E) " LD $@" $(Q) $(CC) -o $@ tst_bitmaps.o tst_bitmaps_cmd.o \ -DDEBUG_RB $(srcdir)/blkmap64_rb.c $(ALL_CFLAGS) \ - $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) $(STATIC_LIBCOM_ERR) \ - $(SYSLIBS) + $(ALL_LDFLAGS) $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) \ + $(STATIC_LIBCOM_ERR) $(SYSLIBS) tst_extents: $(srcdir)/extent.c $(DEBUG_OBJS) $(DEPSTATIC_LIBSS) libext2fs.a \ $(STATIC_LIBE2P) $(DEPLIBUUID) $(DEPLIBBLKID) $(DEPSTATIC_LIBCOM_ERR) \ $(DEPLIBQUOTA) $(E) " LD $@" $(Q) $(CC) -o tst_extents $(srcdir)/extent.c \ - $(ALL_CFLAGS) -DDEBUG $(DEBUG_OBJS) $(STATIC_LIBSS) \ - $(STATIC_LIBE2P) $(LIBQUOTA) $(STATIC_LIBEXT2FS) \ - $(LIBBLKID) $(LIBUUID) $(STATIC_LIBCOM_ERR) \ - $(SYSLIBS) -I $(top_srcdir)/debugfs + $(ALL_CFLAGS) $(ALL_LDFLAGS) -DDEBUG $(DEBUG_OBJS) \ + $(STATIC_LIBSS) $(STATIC_LIBE2P) $(LIBQUOTA) \ + $(STATIC_LIBEXT2FS) $(LIBBLKID) $(LIBUUID) \ + $(STATIC_LIBCOM_ERR) $(SYSLIBS) -I $(top_srcdir)/debugfs tst_libext2fs: $(DEBUG_OBJS) \ $(DEPSTATIC_LIBSS) $(STATIC_LIBE2P) $(DEPLIBUUID) libext2fs.a \ $(DEPLIBBLKID) $(DEPSTATIC_LIBCOM_ERR) $(DEPLIBQUOTA) $(E) " LD $@" - $(Q) $(CC) -o tst_libext2fs $(ALL_CFLAGS) -DDEBUG $(DEBUG_OBJS) \ + $(Q) $(CC) -o tst_libext2fs $(ALL_LDFLAGS) -DDEBUG $(DEBUG_OBJS) \ $(STATIC_LIBSS) $(STATIC_LIBE2P) $(LIBQUOTA) \ $(STATIC_LIBEXT2FS) $(LIBBLKID) $(LIBUUID) \ $(STATIC_LIBCOM_ERR) $(SYSLIBS) -I $(top_srcdir)/debugfs tst_inline: $(srcdir)/inline.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR) $(E) " LD $@" - $(Q) $(CC) -o tst_inline $(srcdir)/inline.c $(ALL_CFLAGS) -DDEBUG \ - $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS) + $(Q) $(CC) -o tst_inline $(srcdir)/inline.c $(ALL_CFLAGS) \ + $(ALL_LDFLAGS) -DDEBUG $(STATIC_LIBEXT2FS) \ + $(STATIC_LIBCOM_ERR) $(SYSLIBS) tst_csum: csum.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR) $(STATIC_LIBE2P) \ $(top_srcdir)/lib/e2p/e2p.h $(E) " LD $@" $(Q) $(CC) -o tst_csum $(srcdir)/csum.c -DDEBUG \ - $(ALL_CFLAGS) $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) \ - $(STATIC_LIBE2P) $(SYSLIBS) + $(ALL_CFLAGS) $(ALL_LDFLAGS) $(STATIC_LIBEXT2FS) \ + $(STATIC_LIBCOM_ERR) $(STATIC_LIBE2P) $(SYSLIBS) tst_crc32c: $(srcdir)/crc32c.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR) - $(Q) $(CC) $(BUILD_LDFLAGS) $(ALL_CFLAGS) -o tst_crc32c $(srcdir)/crc32c.c \ + $(Q) $(CC) $(ALL_LDFLAGS) $(ALL_CFLAGS) -o tst_crc32c $(srcdir)/crc32c.c \ -DUNITTEST $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) \ $(SYSLIBS) @@ -451,7 +452,7 @@ mkjournal: mkjournal.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR) check:: tst_bitops tst_badblocks tst_iscan tst_types tst_icount \ tst_super_size tst_types tst_inode_size tst_csum tst_crc32c tst_bitmaps \ - tst_inline + tst_inline tst_libext2fs LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_bitops LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_badblocks LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_iscan From ef1e7be70c5fded54b4dbdee76588269f1aa2a7b Mon Sep 17 00:00:00 2001 From: Paul Wise Date: Sat, 12 Jul 2014 11:56:49 -0400 Subject: [PATCH 04/15] Add more generated files to the git ignore list Signed-off-by: Paul Wise Signed-off-by: Theodore Ts'o --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 7262ac47..07f4eab9 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ MCONFIG asm_types.h config.log config.status +debugfs/extent_cmds.c debugfs/debug_cmds.c debugfs/debugfs debugfs/debugfs.8 @@ -51,6 +52,8 @@ e2fsck/tst_problem e2fsck/tst_refcount e2fsck/tst_region e2fsprogs.spec +ext2ed/ext2ed.conf +ext2ed/ext2ed.8 intl/charset.alias intl/libgnuintl.h intl/libintl.a From f03788f74a0885aacf768dfc41a43aad6222dd27 Mon Sep 17 00:00:00 2001 From: Paul Wise Date: Sat, 12 Jul 2014 11:56:49 -0400 Subject: [PATCH 05/15] Use a wildcard for static libs in the git ignore list Signed-off-by: Paul Wise Signed-off-by: Theodore Ts'o --- .gitignore | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 07f4eab9..ac0fd2b0 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ Makefile *.diff *.dSYM *.o +*.a *.orig *.patch *.pc @@ -64,7 +65,6 @@ lib/blkid/blkid.h lib/blkid/blkid.pc lib/blkid/blkid_types.h lib/blkid/libblkid.3 -lib/blkid/libblkid.a lib/blkid/subdirs lib/blkid/test_probe lib/blkid/tests/*.ok @@ -84,13 +84,11 @@ lib/blkid/tst_types lib/config.h lib/dirpaths.h lib/e2p/e2p.pc -lib/e2p/libe2p.a lib/e2p/subdirs lib/e2p/tst_feature lib/e2p/tst_ostype lib/et/com_err.pc lib/et/compile_et -lib/et/libcom_err.a lib/et/subdirs lib/ext2fs/crc32c_table.h lib/ext2fs/debug_cmds.c @@ -101,7 +99,6 @@ lib/ext2fs/ext2_types.h lib/ext2fs/ext2fs.pc lib/ext2fs/extent_cmds.c lib/ext2fs/gen_crc32ctable -lib/ext2fs/libext2fs.a lib/ext2fs/subdirs lib/ext2fs/tst_badblocks lib/ext2fs/tst_bitmaps @@ -118,16 +115,7 @@ lib/ext2fs/tst_iscan lib/ext2fs/tst_libext2fs lib/ext2fs/tst_super_size lib/ext2fs/tst_types -lib/libblkid.a -lib/libcom_err.a -lib/libe2p.a -lib/libext2fs.a -lib/libquota.a -lib/libss.a -lib/libuuid.a -lib/quota/libquota.a lib/quota/subdirs -lib/ss/libss.a lib/ss/mk_cmds lib/ss/ss.pc lib/ss/ss_err.c @@ -138,7 +126,6 @@ lib/ss/test.diff lib/ss/test_cmd.c lib/ss/test_out lib/ss/test_ss -lib/uuid/libuuid.a lib/uuid/subdirs lib/uuid/tst_uuid lib/uuid/uuid.3 From 3adc78ac032f1340f5ac8b837518fa823a8e1d9a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 13 Jul 2014 13:12:51 -0400 Subject: [PATCH 06/15] po: update fr.po (from translationproject.org) Signed-off-by: Theodore Ts'o --- po/fr.po | 631 +++++++++++++++++-------------------------------------- 1 file changed, 190 insertions(+), 441 deletions(-) diff --git a/po/fr.po b/po/fr.po index e43501c4..a6083fbe 100644 --- a/po/fr.po +++ b/po/fr.po @@ -69,10 +69,10 @@ #. msgid "" msgstr "" -"Project-Id-Version: GNU e2fsprogs 1.42.10\n" +"Project-Id-Version: GNU e2fsprogs 1.42.11-rc0\n" "Report-Msgid-Bugs-To: tytso@alum.mit.edu\n" "POT-Creation-Date: 2014-07-05 23:41-0400\n" -"PO-Revision-Date: 2014-05-25 23:25+0200\n" +"PO-Revision-Date: 2014-07-13 15:59+0200\n" "Last-Translator: Samuel Thibault \n" "Language-Team: French \n" "Language: fr\n" @@ -110,8 +110,7 @@ msgstr "lors de la tentative d'ouverture via popen() #: e2fsck/badblocks.c:94 misc/mke2fs.c:234 msgid "while reading in list of bad blocks from file" -msgstr "" -"lors de la lecture de la liste des blocs défectueux à partir du fichier" +msgstr "lors de la lecture de la liste des blocs défectueux à partir du fichier" #: e2fsck/badblocks.c:105 msgid "while updating bad block inode" @@ -188,14 +187,12 @@ msgstr "Utilisation #: e2fsck/flushb.c:64 #, c-format msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n" -msgstr "" -"L'ioctl BLKFLSBUF n'est pas supporté ! Impossible de vider les tampons.\n" +msgstr "L'ioctl BLKFLSBUF n'est pas supporté ! Impossible de vider les tampons.\n" #: e2fsck/iscan.c:44 #, c-format msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n" -msgstr "" -"Utilisation : %s [-F] [-I nombre_blocs_du_tampon_d_i_noeud] périphérique\n" +msgstr "Utilisation : %s [-F] [-I nombre_blocs_du_tampon_d_i_noeud] périphérique\n" #: e2fsck/iscan.c:81 e2fsck/unix.c:972 #, c-format @@ -489,14 +486,12 @@ msgstr "retourn #: e2fsck/pass1b.c:843 #, c-format msgid "internal error: couldn't lookup EA block record for %llu" -msgstr "" -"erreur interne : impossible de trouver l'enregistrement de bloc EA pour %llu" +msgstr "erreur interne : impossible de trouver l'enregistrement de bloc EA pour %llu" #: e2fsck/pass1b.c:855 #, c-format msgid "internal error: couldn't lookup EA inode record for %u" -msgstr "" -"erreur interne : impossible de trouver l'enregistrement d'i-noeud EA pour %u" +msgstr "erreur interne : impossible de trouver l'enregistrement d'i-noeud EA pour %u" #: e2fsck/pass1.c:475 e2fsck/pass2.c:782 msgid "reading directory block" @@ -934,8 +929,7 @@ msgstr "Le @j externe ne supporte pas ce @f\n" #: e2fsck/problem.c:215 msgid "" "@f @j @S is unknown type %N (unsupported).\n" -"It is likely that your copy of e2fsck is old and/or doesn't support this @j " -"format.\n" +"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n" "It is also possible the @j @S is corrupt.\n" msgstr "" "Le @S du @j est de type inconnu %N (non supporté).\n" @@ -950,9 +944,8 @@ msgstr "Le @S du @j est corrompu.\n" #. @-expanded: superblock has_journal flag is clear, but a journal is present.\n #: e2fsck/problem.c:228 -#, fuzzy msgid "@S has_@j flag is clear, but a @j is present.\n" -msgstr "Le drapeau has_@j du @S n'est pas activé, mais un @j %s est présent.\n" +msgstr "Le drapeau has_@j du @S n'est pas activé, mais un @j est présent.\n" #. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n #: e2fsck/problem.c:233 @@ -962,9 +955,7 @@ msgstr "Le @S a le drapeau needs_recovery activ #. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n #: e2fsck/problem.c:238 msgid "@S needs_recovery flag is clear, but @j has data.\n" -msgstr "" -"le drapeau needs_recovery n'est pas activé, mais le @j contient des " -"données.\n" +msgstr "le drapeau needs_recovery n'est pas activé, mais le @j contient des données.\n" #. @-expanded: Clear journal #: e2fsck/problem.c:243 @@ -974,8 +965,7 @@ msgstr "Effacer le @j" #. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem. #: e2fsck/problem.c:248 e2fsck/problem.c:702 msgid "@f has feature flag(s) set, but is a revision 0 @f. " -msgstr "" -"le @f a des drapeaux de fonctionnalités activés mais est un @f de version 0. " +msgstr "le @f a des drapeaux de fonctionnalités activés mais est un @f de version 0. " #. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n #: e2fsck/problem.c:253 @@ -1007,16 +997,12 @@ msgstr "@i %i @I dans la liste des @is @os.\n" #. @-expanded: journal superblock has an unknown read-only feature flag set.\n #: e2fsck/problem.c:278 msgid "@j @S has an unknown read-only feature flag set.\n" -msgstr "" -"Le @S du @j a un drapeau de fonctionnalités inconnu sélectionné en lecture " -"seule.\n" +msgstr "Le @S du @j a un drapeau de fonctionnalités inconnu sélectionné en lecture seule.\n" #. @-expanded: journal superblock has an unknown incompatible feature flag set.\n #: e2fsck/problem.c:283 msgid "@j @S has an unknown incompatible feature flag set.\n" -msgstr "" -"Le @S du @j contient un drapeau non reconnu de fonctionnalités " -"incompatibles.\n" +msgstr "Le @S du @j contient un drapeau non reconnu de fonctionnalités incompatibles.\n" #. @-expanded: journal version not supported by this e2fsck.\n #: e2fsck/problem.c:288 @@ -1066,9 +1052,7 @@ msgstr "Ex #. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n #: e2fsck/problem.c:314 msgid "Recovery flag not set in backup @S, so running @j anyway.\n" -msgstr "" -"Le drapeau de récupération n'est pas activé dans le @S de secours, le @j " -"sera donc quand même exécuté.\n" +msgstr "Le drapeau de récupération n'est pas activé dans le @S de secours, le @j sera donc quand même exécuté.\n" #. @-expanded: Backing up journal inode block information.\n #. @-expanded: \n @@ -1093,9 +1077,7 @@ msgstr "" #. @-expanded: Resize_inode not enabled, but the resize inode is non-zero. #: e2fsck/problem.c:330 msgid "Resize_@i not enabled, but the resize @i is non-zero. " -msgstr "" -"Resize_inode n'est pas activé, mais l'@i de changement de taille n'est pas " -"nul. " +msgstr "Resize_inode n'est pas activé, mais l'@i de changement de taille n'est pas nul. " #. @-expanded: Resize inode not valid. #: e2fsck/problem.c:335 @@ -1154,8 +1136,7 @@ msgstr "" #. @-expanded: group descriptor %g has invalid unused inodes count %b. #: e2fsck/problem.c:369 msgid "@g descriptor %g has invalid unused inodes count %b. " -msgstr "" -"Le descripteur de @g %g a un nombre invalide d'i-noeuds non utilisés %b. " +msgstr "Le descripteur de @g %g a un nombre invalide d'i-noeuds non utilisés %b. " #. @-expanded: Last group block bitmap uninitialized. #: e2fsck/problem.c:374 @@ -1165,8 +1146,7 @@ msgstr "Le @B de @b du dernier @g n'est pas initialis #: e2fsck/problem.c:379 #, c-format msgid "Journal transaction %i was corrupt, replay was aborted.\n" -msgstr "" -"La transaction %i du journal était corrompue, le rejeu a été abandonné.\n" +msgstr "La transaction %i du journal était corrompue, le rejeu a été abandonné.\n" #: e2fsck/problem.c:383 msgid "The test_fs flag is set (and ext4 is available). " @@ -1178,12 +1158,10 @@ msgstr "Le drapeau test_fs est positionn #: e2fsck/problem.c:388 msgid "" "@S last mount time is in the future.\n" -"\t(by less than a day, probably due to the hardware clock being incorrectly " -"set) " +"\t(by less than a day, probably due to the hardware clock being incorrectly set) " msgstr "" "La date de dernier montage du @S est dans le futur.\n" -"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal " -"configurée) " +"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal configurée) " #. @-expanded: superblock last write time is in the future.\n #. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly @@ -1191,18 +1169,15 @@ msgstr "" #: e2fsck/problem.c:394 msgid "" "@S last write time is in the future.\n" -"\t(by less than a day, probably due to the hardware clock being incorrectly " -"set). " +"\t(by less than a day, probably due to the hardware clock being incorrectly set). " msgstr "" "La date de dernière écriture du @S est dans le futur.\n" -"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal " -"configurée) " +"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal configurée) " #. @-expanded: One or more block group descriptor checksums are invalid. #: e2fsck/problem.c:400 msgid "One or more @b @g descriptor checksums are invalid. " -msgstr "" -"Le checksum d'un ou de plusieurs descripteurs de @g de @b est invalide. " +msgstr "Le checksum d'un ou de plusieurs descripteurs de @g de @b est invalide. " #. @-expanded: Setting free inodes count to %j (was %i)\n #: e2fsck/problem.c:405 @@ -1242,9 +1217,7 @@ msgstr "exet2fs_check_desc: %m\n" #. @-expanded: superblock 64bit filesystems needs extents to access the whole disk. #: e2fsck/problem.c:440 msgid "@S 64bit filesystems needs extents to access the whole disk. " -msgstr "" -"Le superbloc d'un système de fichier 64bit a besoin des extents pour accéder " -"à l'ensemble du disque. " +msgstr "Le superbloc d'un système de fichier 64bit a besoin des extents pour accéder à l'ensemble du disque. " #. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n #: e2fsck/problem.c:447 @@ -1359,8 +1332,7 @@ msgstr "@b dupliqu #. @-expanded: Bad block %b used as bad block inode indirect block. #: e2fsck/problem.c:551 msgid "Bad @b %b used as bad @b @i indirect @b. " -msgstr "" -"%b défectueux utilisé en tant que @b indirect d'@i des @bs défectueux. " +msgstr "%b défectueux utilisé en tant que @b indirect d'@i des @bs défectueux. " #. @-expanded: \n #. @-expanded: The bad block inode has probably been corrupted. You probably\n @@ -1409,9 +1381,7 @@ msgstr "Le @S primaire (%b) est sur la liste des @bs d #. @-expanded: Block %b in the primary group descriptors is on the bad block list\n #: e2fsck/problem.c:579 msgid "Block %b in the primary @g descriptors is on the bad @b list\n" -msgstr "" -"Le bloc %b dans les descripteurs de @gs primaires est dans la liste des @bs " -"défectueux\n" +msgstr "Le bloc %b dans les descripteurs de @gs primaires est dans la liste des @bs défectueux\n" #. @-expanded: Warning: Group %g's superblock (%b) is bad.\n #: e2fsck/problem.c:585 @@ -1421,16 +1391,12 @@ msgstr "Avertissement #. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n #: e2fsck/problem.c:590 msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n" -msgstr "" -"Avertissement : la copie des descripteurs de @gs du @g %g a un @b (%b) " -"défectueux.\n" +msgstr "Avertissement : la copie des descripteurs de @gs du @g %g a un @b (%b) défectueux.\n" #. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n #: e2fsck/problem.c:596 msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n" -msgstr "" -"Erreur de programmation ? @b n°%b reclamé sans aucune raison dans " -"process_bad_block.\n" +msgstr "Erreur de programmation ? @b n°%b reclamé sans aucune raison dans process_bad_block.\n" #. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n #: e2fsck/problem.c:602 @@ -1501,16 +1467,12 @@ msgstr "Erreur lors de la boucle d'it #. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n #: e2fsck/problem.c:662 msgid "Error storing @i count information (@i=%i, count=%N): %m\n" -msgstr "" -"Erreur lors du stockage du compteur d'information d'@i (@i=%i, compteur=" -"%N) : %m\n" +msgstr "Erreur lors du stockage du compteur d'information d'@i (@i=%i, compteur=%N) : %m\n" #. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n #: e2fsck/problem.c:667 msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n" -msgstr "" -"Erreur lors du stockage de l'information du @b de @ds (@i=%i, @b=%b, num=" -"%N) : %m\n" +msgstr "Erreur lors du stockage de l'information du @b de @ds (@i=%i, @b=%b, num=%N) : %m\n" #. @-expanded: Error reading inode %i: %m\n #: e2fsck/problem.c:673 @@ -1539,9 +1501,7 @@ msgstr "" #: e2fsck/problem.c:692 #, c-format msgid "@i %i has @cion flag set on @f without @cion support. " -msgstr "" -"l'@i %i a le drapeau de @cion qui est initialisé sur un @f sans support de " -"@cion. " +msgstr "l'@i %i a le drapeau de @cion qui est initialisé sur un @f sans support de @cion. " #. @-expanded: Special (device/socket/fifo) inode %i has non-zero size. #: e2fsck/problem.c:697 @@ -1568,9 +1528,7 @@ msgstr "l'@i %i fait partie de la liste des @is @os. " #. @-expanded: inodes that were part of a corrupted orphan linked list found. #: e2fsck/problem.c:723 msgid "@is that were part of a corrupted orphan linked list found. " -msgstr "" -"des @is qui faisaient partie d'une liste chaînée d'orphelins corrompue ont " -"été repérés. " +msgstr "des @is qui faisaient partie d'une liste chaînée d'orphelins corrompue ont été repérés. " #. @-expanded: error allocating refcount structure (%N): %m\n #: e2fsck/problem.c:728 @@ -1650,8 +1608,7 @@ msgstr "le %B (%b) rend le lien symbolique trop grand. " #: e2fsck/problem.c:802 #, c-format msgid "@i %i has INDEX_FL flag set on @f without htree support.\n" -msgstr "" -"l'@i %i a le drapeau INDEX_FL activé sur le @f sans support des htrees.\n" +msgstr "l'@i %i a le drapeau INDEX_FL activé sur le @f sans support des htrees.\n" #. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n #: e2fsck/problem.c:807 @@ -1687,9 +1644,7 @@ msgstr "l'@h %i a une hauteur d'arbre (%N) qui est trop grande\n" msgid "" "Bad @b @i has an indirect @b (%b) that conflicts with\n" "@f metadata. " -msgstr "" -"l'@i des @bs défectueux a un @b indirect (%b) qui entre en conflit avec les " -"métadonnées du @f. " +msgstr "l'@i des @bs défectueux a un @b indirect (%b) qui entre en conflit avec les métadonnées du @f. " #. @-expanded: Resize inode (re)creation failed: %m. #: e2fsck/problem.c:838 @@ -1772,15 +1727,13 @@ msgstr "" #: e2fsck/problem.c:899 #, c-format msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n" -msgstr "" -"l'@i %i a le drapeau EXTENTS_FL activé sur le @f sans support des extents.\n" +msgstr "l'@i %i a le drapeau EXTENTS_FL activé sur le @f sans support des extents.\n" #. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n #: e2fsck/problem.c:904 #, c-format msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n" -msgstr "" -"L'@i %i a un format d'extent, mais le @S n'a pas la fonctionnalité EXTENTS\n" +msgstr "L'@i %i a un format d'extent, mais le @S n'a pas la fonctionnalité EXTENTS\n" #. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n #: e2fsck/problem.c:909 @@ -1852,8 +1805,7 @@ msgid "" "Logical start %b does not match logical start %c at next level. " msgstr "" "Extent intérieur de niveau de noeud %N de l'i-noeud %i:\n" -"Le début logique %b ne correspond pas au début logique %c du niveau " -"suivant. " +"Le début logique %b ne correspond pas au début logique %c du niveau suivant. " #. @-expanded: inode %i, end of extent exceeds allowed value\n #. @-expanded: \t(logical block %c, physical block %b, len %N)\n @@ -1875,8 +1827,7 @@ msgid "" "Pass 1B: Rescanning for @m @bs\n" msgstr "" "\n" -"Exécution de passes additionnelles pour résoudre les problèmes de @bs " -"réclamés par plus d'un @i...\n" +"Exécution de passes additionnelles pour résoudre les problèmes de @bs réclamés par plus d'un @i...\n" "Passe 1B : ré-examen pour les @bs @m\n" #. @-expanded: multiply-claimed block(s) in inode %i: @@ -2200,9 +2151,7 @@ msgstr "le @b d'@a @F @n (%If).\n" #. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n #: e2fsck/problem.c:1291 msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n" -msgstr "" -"le @f contient de grands fichiers, mais n'a pas le drapeau LARGE_FILE activé " -"dans le @S.\n" +msgstr "le @f contient de grands fichiers, mais n'a pas le drapeau LARGE_FILE activé dans le @S.\n" #. @-expanded: problem in HTREE directory inode %d: %B not referenced\n #: e2fsck/problem.c:1296 @@ -2307,8 +2256,7 @@ msgstr "@E r #. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n #: e2fsck/problem.c:1384 msgid "@E references @i %Di found in @g %g's unused inodes area.\n" -msgstr "" -"@E référence l'@i %Di trouvé dans la zone d'i-noeuds non utilisés du @g %g.\n" +msgstr "@E référence l'@i %Di trouvé dans la zone d'i-noeuds non utilisés du @g %g.\n" #. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n #: e2fsck/problem.c:1389 @@ -2384,17 +2332,13 @@ msgstr "ext2fs_new_@i #: e2fsck/problem.c:1456 #, c-format msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n" -msgstr "" -"ext2fs_new_dir_@b : %m lors de la tentative de création d'un nouveau @b de " -"@d\n" +msgstr "ext2fs_new_dir_@b : %m lors de la tentative de création d'un nouveau @b de @d\n" #. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n #: e2fsck/problem.c:1461 #, c-format msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n" -msgstr "" -"ext2fs_write_dir_@b : %m lors de la tentative d'écriture du @b de @d pour /" -"@l\n" +msgstr "ext2fs_write_dir_@b : %m lors de la tentative d'écriture du @b de @d pour /@l\n" #. @-expanded: Error while adjusting inode count on inode %i\n #: e2fsck/problem.c:1466 @@ -2532,14 +2476,12 @@ msgstr "diff #. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n #: e2fsck/problem.c:1634 msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n" -msgstr "" -"Le décompte des @is libres est erroné pour le @g n°%g (%i, décompté=%j).\n" +msgstr "Le décompte des @is libres est erroné pour le @g n°%g (%i, décompté=%j).\n" #. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n #: e2fsck/problem.c:1639 msgid "Directories count wrong for @g #%g (%i, counted=%j).\n" -msgstr "" -"Le décompte des répertoires est erroné pour le @g n°%g (%i, décompté=%j).\n" +msgstr "Le décompte des répertoires est erroné pour le @g n°%g (%i, décompté=%j).\n" #. @-expanded: Free inodes count wrong (%i, counted=%j).\n #: e2fsck/problem.c:1644 @@ -2549,8 +2491,7 @@ msgstr "Le d #. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n #: e2fsck/problem.c:1649 msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n" -msgstr "" -"Le décompte des @bs libres est erroné pour le @g n°%g (%b, décompté=%c).\n" +msgstr "Le décompte des @bs libres est erroné pour le @g n°%g (%b, décompté=%c).\n" #. @-expanded: Free blocks count wrong (%b, counted=%c).\n #: e2fsck/problem.c:1654 @@ -2560,13 +2501,8 @@ msgstr "Le d #. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap #. @-expanded: endpoints (%i, %j)\n #: e2fsck/problem.c:1659 -msgid "" -"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B " -"endpoints (%i, %j)\n" -msgstr "" -"ERREUR DE PROGRAMMATION : les points de terminaison (%b, %c) de @Bs du @f (n°" -"%N) ne concordent pas avec les points de terminaison de @Bs calculés (%i, " -"%j)\n" +msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n" +msgstr "ERREUR DE PROGRAMMATION : les points de terminaison (%b, %c) de @Bs du @f (n°%N) ne concordent pas avec les points de terminaison de @Bs calculés (%i, %j)\n" #: e2fsck/problem.c:1665 msgid "Internal error: fudging end of bitmap (%N)\n" @@ -2588,17 +2524,13 @@ msgstr "Erreur lors de la copie du @B des @bs de remplacement #: e2fsck/problem.c:1700 #, c-format msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n" -msgstr "" -"Un ou des @b(s) du @g %g en cours d'utilisation alors que le @g est marqué " -"BLOCK_UNINIT\n" +msgstr "Un ou des @b(s) du @g %g en cours d'utilisation alors que le @g est marqué BLOCK_UNINIT\n" #. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n #: e2fsck/problem.c:1705 #, c-format msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n" -msgstr "" -"Un ou des @i(s) du @g %g en cours d'utilisation alors que le @g est marqué " -"INODE_UNINIT\n" +msgstr "Un ou des @i(s) du @g %g en cours d'utilisation alors que le @g est marqué INODE_UNINIT\n" #. @-expanded: Recreate journal #: e2fsck/problem.c:1712 @@ -2674,8 +2606,7 @@ msgid "" " -p Automatic repair (no questions)\n" " -n Make no changes to the filesystem\n" " -y Assume \"yes\" to all questions\n" -" -c Check for bad blocks and add them to the badblock " -"list\n" +" -c Check for bad blocks and add them to the badblock list\n" " -f Force checking even if filesystem is marked clean\n" msgstr "" "\n" @@ -2744,8 +2675,7 @@ msgstr[1] "%12u r #: e2fsck/unix.c:171 #, c-format msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n" -msgstr "" -" nombre d'i-noeuds avec des blocs ind/dind/tind : %u/%u/%u\n" +msgstr " nombre d'i-noeuds avec des blocs ind/dind/tind : %u/%u/%u\n" #: e2fsck/unix.c:179 msgid " Extent depth histogram: " @@ -2857,24 +2787,24 @@ msgid "while determining whether %s is mounted." msgstr "lors de la détermination à savoir si %s est monté." #: e2fsck/unix.c:253 -#, fuzzy, c-format +#, c-format msgid "Warning! %s is mounted.\n" -msgstr "Attention ! %s est %s.\n" +msgstr "Attention ! %s est monté.\n" #: e2fsck/unix.c:256 -#, fuzzy, c-format +#, c-format msgid "Warning! %s is in use.\n" -msgstr "Attention ! %s est %s.\n" +msgstr "Attention ! %s est en cours d'utilisation.\n" #: e2fsck/unix.c:262 -#, fuzzy, c-format +#, c-format msgid "%s is mounted.\n" -msgstr "%s est monté. " +msgstr "%s est monté.\n" #: e2fsck/unix.c:264 -#, fuzzy, c-format +#, c-format msgid "%s is in use.\n" -msgstr "%s est %s.\n" +msgstr "%s est en cours d'utilisation.\n" #: e2fsck/unix.c:266 msgid "" @@ -2916,9 +2846,7 @@ msgstr " n'a pas #: e2fsck/unix.c:372 msgid " primary superblock features different from backup" -msgstr "" -" les fonctionnalités du superbloc primaire diffèrent de celles de la " -"sauvegarde" +msgstr " les fonctionnalités du superbloc primaire diffèrent de celles de la sauvegarde" #: e2fsck/unix.c:376 #, c-format @@ -2927,8 +2855,7 @@ msgstr " a #: e2fsck/unix.c:383 msgid " has filesystem last checked time in the future" -msgstr "" -" a une date de dernière vérification du système de fichiers dans le futur" +msgstr " a une date de dernière vérification du système de fichiers dans le futur" #: e2fsck/unix.c:389 #, c-format @@ -3043,12 +2970,8 @@ msgstr "" #: e2fsck/unix.c:1132 #, c-format -msgid "" -"MMP interval is %u seconds and total wait time is %u seconds. Please " -"wait...\n" -msgstr "" -"L'intervale de protection contre montage multiple (MMP) est de %u secondes " -"et temps total d'attente est de %u seconds. Veuillez patienter...\n" +msgid "MMP interval is %u seconds and total wait time is %u seconds. Please wait...\n" +msgstr "L'intervale de protection contre montage multiple (MMP) est de %u secondes et temps total d'attente est de %u seconds. Veuillez patienter...\n" #: e2fsck/unix.c:1149 e2fsck/unix.c:1154 msgid "while checking MMP block" @@ -3059,8 +2982,7 @@ msgid "" "If you are sure the filesystem is not in use on any node, run:\n" "'tune2fs -f -E clear_mmp {device}'\n" msgstr "" -"Si vous êtes sûr(e) que le système de fichiers n'est en cours d'utilisation " -"sur aucun noeud, lancer:\n" +"Si vous êtes sûr(e) que le système de fichiers n'est en cours d'utilisation sur aucun noeud, lancer:\n" "'tune2fs -f -E clear_mmp {device}'\n" #: e2fsck/unix.c:1207 @@ -3155,9 +3077,7 @@ msgid "while checking ext3 journal for %s" msgstr "lors de la vérification du journal ext3 pour %s" #: e2fsck/unix.c:1492 -msgid "" -"Warning: skipping journal recovery because doing a read-only filesystem " -"check.\n" +msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n" msgstr "" "Avertissement : saute la récupération du journal puisque l'on\n" "procède à l'examen d'un système de fichiers en lecture seule.\n" @@ -3215,8 +3135,7 @@ msgid "" "*** journal has been re-created - filesystem is now ext3 again ***\n" msgstr "" "\n" -"*** le journal a été re-créé - le système de fichiers est de nouveau ext3 " -"***\n" +"*** le journal a été re-créé - le système de fichiers est de nouveau ext3 ***\n" #: e2fsck/unix.c:1687 msgid "Restarting e2fsck from the beginning...\n" @@ -3262,8 +3181,7 @@ msgstr "" #: e2fsck/unix.c:1767 msgid "while setting block group checksum info" -msgstr "" -"lors de l'initialisation de l'information de checksum du groupe de blocs" +msgstr "lors de l'initialisation de l'information de checksum du groupe de blocs" #: e2fsck/util.c:190 misc/util.c:86 msgid "yY" @@ -3344,9 +3262,7 @@ msgstr "l' #: e2fsck/util.c:303 #, c-format msgid "while rewriting block and inode bitmaps for %s" -msgstr "" -"lors d'une nouvelle tentative d'écriture de bitmaps de blocs et d'i-noeuds " -"pour %s" +msgstr "lors d'une nouvelle tentative d'écriture de bitmaps de blocs et d'i-noeuds pour %s" #: e2fsck/util.c:315 #, c-format @@ -3396,12 +3312,8 @@ msgid "while allocating zeroizing buffer" msgstr "lors de l'allocation d'un tampon de mise à zéro" #: e2fsck/util.c:785 -msgid "" -"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is " -"running.\n" -msgstr "" -"INCOHÉRENCE INATTENDUE : le système de fichiers a été modifié pendant le " -"déroulement de fsck.\n" +msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n" +msgstr "INCOHÉRENCE INATTENDUE : le système de fichiers a été modifié pendant le déroulement de fsck.\n" #: misc/badblocks.c:69 msgid "done \n" @@ -3411,13 +3323,11 @@ msgstr "compl #, c-format msgid "" "Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n" -" [-c blocks_at_once] [-d delay_factor_between_reads] [-e " -"max_bad_blocks]\n" +" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n" " [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n" " device [last_block [first_block]]\n" msgstr "" -"Utilisation : %s [-b taille_de_bloc] [-i fichier_d_entrée] [-o " -"fichier_de_sortie]\n" +"Utilisation : %s [-b taille_de_bloc] [-i fichier_d_entrée] [-o fichier_de_sortie]\n" " [-svwnf] [-c blocs_à_la_fois] [-d facteur_délai_entre_lectures]\n" " [-e max_blocks_défectueux] [-p nombre_de_passes]\n" " [-t motif_de_test [-t motif_de_test [...]]]\n" @@ -3505,8 +3415,7 @@ msgstr "" #: misc/badblocks.c:782 msgid "Checking for bad blocks (non-destructive read-write test)\n" -msgstr "" -"Vérification des blocs défectueux (test non destructif de lecture-écriture)\n" +msgstr "Vérification des blocs défectueux (test non destructif de lecture-écriture)\n" #: misc/badblocks.c:789 msgid "" @@ -3611,9 +3520,9 @@ msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n" msgstr "Passe complétée, %u blocs défectueux repérés. (%d/%d/%d erreurs)\n" #: misc/chattr.c:86 -#, fuzzy, c-format +#, c-format msgid "Usage: %s [-RVf] [-+=aAcCdDeijsStTu] [-v version] files...\n" -msgstr "Utilisation : %s [-RVf] [-+=AaCcDdeijsSu] [-v version] fichiers...\n" +msgstr "Utilisation : %s [-RVf] [-+=aAcCdDeijsStTu] [-v version] fichiers...\n" #: misc/chattr.c:155 #, c-format @@ -3665,9 +3574,7 @@ msgstr "Vous devez utiliser #: misc/dumpe2fs.c:55 #, c-format msgid "Usage: %s [-bfhixV] [-o superblock=] [-o blocksize=] device\n" -msgstr "" -"Utilisation : %s [-bfhixV] [-o superblock=] [-o blocksize=] " -"périphérique\n" +msgstr "Utilisation : %s [-bfhixV] [-o superblock=] [-o blocksize=] périphérique\n" #: misc/dumpe2fs.c:159 msgid "blocks" @@ -3914,12 +3821,8 @@ msgstr " %s -I p #: misc/e2image.c:104 #, c-format -msgid "" -" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs " -"[ dest_fs ]\n" -msgstr "" -" %s -ra [ -cfnp ] [ -o décalage-src ] [ -O décalage-dst ] " -"src_fs [ dest_fs ]\n" +msgid " %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs [ dest_fs ]\n" +msgstr " %s -ra [ -cfnp ] [ -o décalage-src ] [ -O décalage-dst ] src_fs [ dest_fs ]\n" #: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582 #: misc/e2image.c:1178 @@ -3984,11 +3887,8 @@ msgid "Copying " msgstr "Copie " #: misc/e2image.c:623 -msgid "" -"Stopping now will destroy the filesystem, interrupt again if you are sure\n" -msgstr "" -"Arrêter maintenant va détruire le système de fichier, interrompez de nouveau " -"si vous êtes sûr\n" +msgid "Stopping now will destroy the filesystem, interrupt again if you are sure\n" +msgstr "Arrêter maintenant va détruire le système de fichier, interrompez de nouveau si vous êtes sûr\n" #: misc/e2image.c:649 #, c-format @@ -4019,13 +3919,8 @@ msgid "while allocating l2 cache" msgstr "lors de l'allocation d'un cache l2" #: misc/e2image.c:823 -msgid "" -"Warning: There are still tables in the cache while putting the cache, data " -"will be lost so the image may not be valid.\n" -msgstr "" -"Attention : Il reste des tables dans le cache lors de la libération du " -"cache, les données seront perdue, et donc l'image pourrait ne pas être " -"valide.\n" +msgid "Warning: There are still tables in the cache while putting the cache, data will be lost so the image may not be valid.\n" +msgstr "Attention : Il reste des tables dans le cache lors de la libération du cache, les données seront perdue, et donc l'image pourrait ne pas être valide.\n" #: misc/e2image.c:1145 msgid "while allocating ext2_qcow2_image" @@ -4037,9 +3932,7 @@ msgstr "lors de l'initialization de ext2fs_qcow2_image" #: misc/e2image.c:1211 misc/e2image.c:1229 msgid "Programming error: multiple sequential refcount blocks created!\n" -msgstr "" -"Erreur de programmation : plusieurs blocs séquentiels refcount ont été " -"créés !\n" +msgstr "Erreur de programmation : plusieurs blocs séquentiels refcount ont été créés !\n" #: misc/e2image.c:1269 msgid "while allocating block bitmap" @@ -4132,8 +4025,7 @@ msgstr "L'image (%s) est chiffr #: misc/e2image.c:1630 #, c-format msgid "while trying to convert qcow2 image (%s) into raw image (%s)" -msgstr "" -"lors de l'essai de conversion de l'image qcow2 (%s) en image brute (%s)" +msgstr "lors de l'essai de conversion de l'image qcow2 (%s) en image brute (%s)" #: misc/e2image.c:1639 msgid "The -c option only supported in raw mode\n" @@ -4231,8 +4123,7 @@ msgstr "Erreur lors la d #: misc/e2undo.c:175 msgid "e2undo should only be run on unmounted file system\n" -msgstr "" -"e2undo ne devrait être lancé que sur un système de fichiers non monté\n" +msgstr "e2undo ne devrait être lancé que sur un système de fichiers non monté\n" #: misc/e2undo.c:184 #, c-format @@ -4285,9 +4176,7 @@ msgstr "%s #: misc/fsck.c:616 #, c-format msgid "Warning... %s for device %s exited with signal %d.\n" -msgstr "" -"Avertissement... %s pour le périphérique %s s'est terminé avec le signal " -"%d.\n" +msgstr "Avertissement... %s pour le périphérique %s s'est terminé avec le signal %d.\n" #: misc/fsck.c:622 #, c-format @@ -4314,17 +4203,12 @@ msgstr "" #: misc/fsck.c:761 msgid "Couldn't allocate memory for filesystem types\n" -msgstr "" -"Impossible d'allouer de la mémoire pour les types de systèmes de fichiers\n" +msgstr "Impossible d'allouer de la mémoire pour les types de systèmes de fichiers\n" #: misc/fsck.c:884 #, c-format -msgid "" -"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass " -"number\n" -msgstr "" -"%s : saut de la mauvaise ligne de /etc/fstab : montage « bind » avec un " -"numéro de passe fsck non nul\n" +msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n" +msgstr "%s : saut de la mauvaise ligne de /etc/fstab : montage « bind » avec un numéro de passe fsck non nul\n" #: misc/fsck.c:911 #, c-format @@ -4341,11 +4225,8 @@ msgid "--waiting-- (pass %d)\n" msgstr "--en attente-- (passe %d)\n" #: misc/fsck.c:1078 -msgid "" -"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n" -msgstr "" -"Utilisation : fsck [-AMNPRTV] [ -C [ fd ] ] [-t type_sys_fichiers] " -"[options_sys_fichiers] [sys_fichiers...]\n" +msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n" +msgstr "Utilisation : fsck [-AMNPRTV] [ -C [ fd ] ] [-t type_sys_fichiers] [options_sys_fichiers] [sys_fichiers...]\n" #: misc/fsck.c:1120 #, c-format @@ -4381,19 +4262,16 @@ msgid "" "\t[-m reserved-blocks-percentage] [-o creator-os]\n" "\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n" "\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n" -"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-" -"count]\n" +"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]\n" msgstr "" -"Utilisation : %s [-c|-l nom-de-fichier] [-b taille-de-bloc] [-C taille-de-" -"cluster]\n" +"Utilisation : %s [-c|-l nom-de-fichier] [-b taille-de-bloc] [-C taille-de-cluster]\n" "\t[-i octets-par-i-noeud] [-I taille-des-i-noeuds]\n" "\t[-J options-de-journal] [-G taille-groupe-flex] [-N nombre-d-i-noeuds]\n" "\t[-m pourcentage-de-blocs-réservés]\n" "\t[-o système-d-exploitation-de-création] [-g blocs-par-groupe]\n" "\t[-L étiquette-du-volume] [-M dernier-répertoire-monté]\n" "\t[-O fonctionnalité[,...]] [-r révision-du-système-de-fichiers]\n" -"\t[-E option-étendue[,...]] [-t type-système-de-fichiers] [-T type-" -"d'utilisation]\n" +"\t[-E option-étendue[,...]] [-t type-système-de-fichiers] [-T type-d'utilisation]\n" "\t[-U UUID] [-jnqvFKSV] périphérique [nombre-de-blocs]\n" #: misc/mke2fs.c:252 @@ -4408,22 +4286,17 @@ msgstr "durant la tentative d'ex #: misc/mke2fs.c:263 msgid "while processing list of bad blocks from program" -msgstr "" -"lors du traitement de la liste des blocs défectueux à partir du programme" +msgstr "lors du traitement de la liste des blocs défectueux à partir du programme" #: misc/mke2fs.c:290 #, c-format msgid "Block %d in primary superblock/group descriptor area bad.\n" -msgstr "" -"Bloc %d dans la zone du descripteur de superbloc/groupe primaire est " -"défectueux.\n" +msgstr "Bloc %d dans la zone du descripteur de superbloc/groupe primaire est défectueux.\n" #: misc/mke2fs.c:292 #, c-format msgid "Blocks %u through %u must be good in order to build a filesystem.\n" -msgstr "" -"Les blocs de %u à %u doivent être en bon état pour générer le système de " -"fichiers.\n" +msgstr "Les blocs de %u à %u doivent être en bon état pour générer le système de fichiers.\n" #: misc/mke2fs.c:295 msgid "Aborting....\n" @@ -4515,8 +4388,7 @@ msgstr "Mise #: misc/mke2fs.c:593 #, c-format msgid "while zeroing journal device (block %llu, count %d)" -msgstr "" -"lors de la mise à zéro du périphérique de journal (bloc %llu, compte %d)" +msgstr "lors de la mise à zéro du périphérique de journal (bloc %llu, compte %d)" #: misc/mke2fs.c:611 msgid "while writing journal superblock" @@ -4525,9 +4397,7 @@ msgstr "lors de l' #: misc/mke2fs.c:626 #, c-format msgid "Creating filesystem with %llu %dk blocks and %u inodes\n" -msgstr "" -"En train de créer un système de fichiers avec %llu %dk blocs et %u i-" -"noeuds.\n" +msgstr "En train de créer un système de fichiers avec %llu %dk blocs et %u i-noeuds.\n" #: misc/mke2fs.c:634 #, c-format @@ -4653,7 +4523,7 @@ msgid "Invalid mmp_update_interval: %s\n" msgstr "mmp_update_interval invalide : %s\n" #: misc/mke2fs.c:826 -#, fuzzy, c-format +#, c-format msgid "Invalid # of backup superblocks: %s\n" msgstr "Nombre de superbloc de secours invalide : %s\n" @@ -4753,8 +4623,7 @@ msgid "" "\n" msgstr "" "\n" -"Attention : le « stripe-width » RAID %u n'est pas multiple impair du " -"« stride » %u.\n" +"Attention : le « stripe-width » RAID %u n'est pas multiple impair du « stride » %u.\n" "\n" #: misc/mke2fs.c:1055 @@ -4857,9 +4726,9 @@ msgid "flex_bg size must be a power of 2" msgstr "La taille flex_bg doit être une puissance de 2" #: misc/mke2fs.c:1589 -#, fuzzy, c-format +#, c-format msgid "flex_bg size (%lu) must be less than or equal to 2^31" -msgstr "La taille flex_bg doit être une puissance de 2" +msgstr "La taille flex_bg (%lu) doit être inférieur ou égal à 2^31" #: misc/mke2fs.c:1600 #, c-format @@ -4872,12 +4741,8 @@ msgid "invalid inode size - %s" msgstr "taille d'i-noeud invalide - %s" #: misc/mke2fs.c:1623 -msgid "" -"Warning: -K option is deprecated and should not be used anymore. Use '-E " -"nodiscard' extended option instead!\n" -msgstr "" -"Avertissement : l'option -K est dépréciée et ne devrait plus être utilisée. " -"Utiliser plutôt l'option étendue « -E nodiscard » !\n" +msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n" +msgstr "Avertissement : l'option -K est dépréciée et ne devrait plus être utilisée. Utiliser plutôt l'option étendue « -E nodiscard » !\n" #: misc/mke2fs.c:1634 msgid "in malloc for bad_blocks_filename" @@ -4899,11 +4764,9 @@ msgid "bad revision level - %s" msgstr "mauvais numéro de version - %s" #: misc/mke2fs.c:1684 -#, fuzzy, c-format +#, c-format msgid "while trying to create revision %d" -msgstr "" -"\n" -"\tlors de la tentative de création du journal" +msgstr "lors de la tentative de création de la révision %d" #: misc/mke2fs.c:1698 msgid "The -t option may only be used once" @@ -4941,8 +4804,7 @@ msgstr "syst #: misc/mke2fs.c:1815 resize/main.c:372 msgid "while trying to determine filesystem size" -msgstr "" -"lors de la tentative de détermination de la taille du système de fichiers" +msgstr "lors de la tentative de détermination de la taille du système de fichiers" #: misc/mke2fs.c:1821 msgid "" @@ -4975,8 +4837,7 @@ msgstr " #: misc/mke2fs.c:1906 msgid "while trying to determine hardware sector size" -msgstr "" -"lors de la tentative de détermination de la taille matérielle de secteur" +msgstr "lors de la tentative de détermination de la taille matérielle de secteur" #: misc/mke2fs.c:1912 msgid "while trying to determine physical sector size" @@ -4984,17 +4845,12 @@ msgstr "lors de la tentative de d #: misc/mke2fs.c:1944 msgid "while setting blocksize; too small for device\n" -msgstr "" -"lors de la définition de la taille de bloc ; trop petite pour le " -"périphérique\n" +msgstr "lors de la définition de la taille de bloc ; trop petite pour le périphérique\n" #: misc/mke2fs.c:1949 #, c-format -msgid "" -"Warning: specified blocksize %d is less than device physical sectorsize %d\n" -msgstr "" -"Avertissement : la taille de bloc %d spécifiée est plus petite que la taille " -"de secteur physique %d\n" +msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n" +msgstr "Avertissement : la taille de bloc %d spécifiée est plus petite que la taille de secteur physique %d\n" #: misc/mke2fs.c:1973 #, c-format @@ -5033,18 +4889,12 @@ msgid "invalid reserved blocks percent - %lf" msgstr "pourcentage de blocs réservés invalide - %lf" #: misc/mke2fs.c:2047 -msgid "" -"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to " -"rectify.\n" -msgstr "" -"Les extents DOIVENT être activées pour un système de fichiers 64 bit. " -"Passez -O extents pour corriger.\n" +msgid "Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to rectify.\n" +msgstr "Les extents DOIVENT être activées pour un système de fichiers 64 bit. Passez -O extents pour corriger.\n" #: misc/mke2fs.c:2067 msgid "The cluster size may not be smaller than the block size.\n" -msgstr "" -"La taille d'un cluster ne peut pas être plus petite que la taille d'un " -"bloc.\n" +msgstr "La taille d'un cluster ne peut pas être plus petite que la taille d'un bloc.\n" #: misc/mke2fs.c:2073 msgid "specifying a cluster size requires the bigalloc feature" @@ -5062,11 +4912,8 @@ msgstr "L'alignement de %s est d #: misc/mke2fs.c:2097 #, c-format -msgid "" -"This may result in very poor performance, (re)-partitioning suggested.\n" -msgstr "" -"Cela peut induire de très mauvaises performances, il est suggéré de (re)-" -"partitionner.\n" +msgid "This may result in very poor performance, (re)-partitioning suggested.\n" +msgstr "Cela peut induire de très mauvaises performances, il est suggéré de (re)-partitionner.\n" #: misc/mke2fs.c:2118 #, c-format @@ -5075,17 +4922,14 @@ msgstr "blocs de %d octets trop gros pour le syst #: misc/mke2fs.c:2122 #, c-format -msgid "" -"Warning: %d-byte blocks too big for system (max %d), forced to continue\n" +msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n" msgstr "" "Avertissement : blocs de %d octets trop gros pour le système (max %d),\n" "poursuite forcée\n" #: misc/mke2fs.c:2178 msgid "Can't support bigalloc feature without extents feature" -msgstr "" -"La fonctionalité bigalloc ne peut pas être supportée sans la fonctionalité " -"extent" +msgstr "La fonctionalité bigalloc ne peut pas être supportée sans la fonctionalité extent" #: misc/mke2fs.c:2185 msgid "" @@ -5103,10 +4947,8 @@ msgid "" "\n" msgstr "" "\n" -"Avertissement : la fonctionalité bigalloc est encore en cours de " -"développement\n" -"Voir https://ext4.wiki.kernel.org/index.php/Bigalloc pour plus " -"d'informations\n" +"Avertissement : la fonctionalité bigalloc est encore en cours de développement\n" +"Voir https://ext4.wiki.kernel.org/index.php/Bigalloc pour plus d'informations\n" "\n" #: misc/mke2fs.c:2205 @@ -5121,9 +4963,7 @@ msgstr "compteur de blocs par groupe hors limite" #: misc/mke2fs.c:2238 msgid "Flex_bg feature not enabled, so flex_bg size may not be specified" -msgstr "" -"La fonctionnalité flex_bg n'est pas activée, la taille flex_bg ne peut donc " -"pas être spécifiée" +msgstr "La fonctionnalité flex_bg n'est pas activée, la taille flex_bg ne peut donc pas être spécifiée" #: misc/mke2fs.c:2250 #, c-format @@ -5158,8 +4998,7 @@ msgid "" " e2undo %s %s\n" "\n" msgstr "" -"Écrasement du système de fichiers existant ; cela peut être défait en " -"utilisant la commande :\n" +"Écrasement du système de fichiers existant ; cela peut être défait en utilisant la commande :\n" " e2undo %s %s\n" "\n" @@ -5181,9 +5020,7 @@ msgstr "lors de l'initialisation du superbloc" #: misc/mke2fs.c:2610 msgid "Discard succeeded and will return 0s - skipping inode table wipe\n" -msgstr "" -"La libération a réussi et retournera des 0s - inutile d'effacer la table des " -"i-noeuds\n" +msgstr "La libération a réussi et retournera des 0s - inutile d'effacer la table des i-noeuds\n" #: misc/mke2fs.c:2698 #, c-format @@ -5260,15 +5097,12 @@ msgid "" "Error while enabling multiple mount protection feature." msgstr "" "\n" -"Erreur lors de l'activation de la fonctionnalité de protection contre le " -"montage multiple." +"Erreur lors de l'activation de la fonctionnalité de protection contre le montage multiple." #: misc/mke2fs.c:2904 #, c-format msgid "Multiple mount protection is enabled with update interval %d seconds.\n" -msgstr "" -"La protection contre le montage multiple est activée avec un intervale de " -"mise à jour de %d secondes.\n" +msgstr "La protection contre le montage multiple est activée avec un intervale de mise à jour de %d secondes.\n" #: misc/mke2fs.c:2921 msgid "Writing superblocks and filesystem accounting information: " @@ -5339,8 +5173,7 @@ msgstr "SVP ex msgid "" "Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n" "\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n" -"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p " -"mmp_update_interval]\n" +"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n" "\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n" "\t[-M last_mounted_dir] [-O [^]feature[,...]]\n" "\t[-Q quota_options]\n" @@ -5441,8 +5274,7 @@ msgid "" "for filesystems with the meta_bg feature enabled.\n" msgstr "" "Définir la fonctionalité de système de fichier 'sparse_super' n'est pas\n" -"supporté pour les systèmes de fichiers avec la fonctionalité flex_bg " -"activée.\n" +"supporté pour les systèmes de fichiers avec la fonctionalité flex_bg activée.\n" #: misc/tune2fs.c:475 msgid "" @@ -5457,9 +5289,7 @@ msgstr "" #: misc/tune2fs.c:493 #, c-format msgid "Multiple mount protection has been enabled with update interval %ds.\n" -msgstr "" -"La protection contre le montage multiple a été activée avec un intervale de " -"mise à jour de %ds.\n" +msgstr "La protection contre le montage multiple a été activée avec un intervale de mise à jour de %ds.\n" #: misc/tune2fs.c:502 msgid "" @@ -5476,9 +5306,7 @@ msgstr "Erreur lors de la lecture des bitmaps\n" #: misc/tune2fs.c:519 #, c-format msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n" -msgstr "" -"Le numéro magique dans le bloc MMP ne correspond pas. attendu : %x, actuel : " -"%x\n" +msgstr "Le numéro magique dans le bloc MMP ne correspond pas. attendu : %x, actuel : %x\n" #: misc/tune2fs.c:524 msgid "while reading MMP block." @@ -5488,8 +5316,7 @@ msgstr "lors de la lecture du bloc MMP." msgid "" "Clearing the flex_bg flag would cause the the filesystem to be\n" "inconsistent.\n" -msgstr "" -"Effacer le drapeau flex_bg rendrait le système de fichiers incohérent.\n" +msgstr "Effacer le drapeau flex_bg rendrait le système de fichiers incohérent.\n" #: misc/tune2fs.c:567 msgid "" @@ -5544,16 +5371,14 @@ msgstr "" #: misc/tune2fs.c:799 msgid "Couldn't allocate memory to parse quota options!\n" -msgstr "" -"Impossible d'allouer de la mémoire pour analyser les options de quota !\n" +msgstr "Impossible d'allouer de la mémoire pour analyser les options de quota !\n" #: misc/tune2fs.c:821 msgid "" "\n" "Bad quota options specified.\n" "\n" -"Following valid quota options are available (pass by separating with " -"comma):\n" +"Following valid quota options are available (pass by separating with comma):\n" "\t[^]usrquota\n" "\t[^]grpquota\n" "\n" @@ -5562,8 +5387,7 @@ msgstr "" "\n" "Une ou des options de quota spécifiées sont erronées.\n" "\n" -"Les options de quota suivantes sont disponibles (les fournir séparées par " -"des virgules):\n" +"Les options de quota suivantes sont disponibles (les fournir séparées par des virgules):\n" "\t[^]usrquota\n" "\t[^]grpquota\n" "\n" @@ -5635,14 +5459,9 @@ msgstr "mmp_update_interval trop grand #: misc/tune2fs.c:1220 #, c-format msgid "Setting multiple mount protection update interval to %lu second\n" -msgid_plural "" -"Setting multiple mount protection update interval to %lu seconds\n" -msgstr[0] "" -"Définition de l'intervale de mise à jour de la protection contre les " -"montages multiples à %lu seconde\n" -msgstr[1] "" -"Définition de l'intervale de mise à jour de la protection contre les " -"montages multiples à %lu secondes\n" +msgid_plural "Setting multiple mount protection update interval to %lu seconds\n" +msgstr[0] "Définition de l'intervale de mise à jour de la protection contre les montages multiples à %lu seconde\n" +msgstr[1] "Définition de l'intervale de mise à jour de la protection contre les montages multiples à %lu secondes\n" #: misc/tune2fs.c:1243 #, c-format @@ -5710,9 +5529,7 @@ msgstr "blocs #: misc/tune2fs.c:1789 msgid "Failed to allocate block bitmap when increasing inode size\n" -msgstr "" -"N'a pu allouer de bitmap de blocs lors d'une augmentation de taille d'i-" -"noeud \n" +msgstr "N'a pu allouer de bitmap de blocs lors d'une augmentation de taille d'i-noeud \n" #: misc/tune2fs.c:1795 msgid "Not enough space to increase inode size \n" @@ -5756,8 +5573,7 @@ msgid "" "MMP block magic is bad. Try to fix it by running:\n" "'e2fsck -f %s'\n" msgstr "" -"Le numéro magique du bloc MMP est incorrect. Essayer de le corriger en " -"lançant:\n" +"Le numéro magique du bloc MMP est incorrect. Essayer de le corriger en lançant:\n" "'e2fsck -f %s'\n" #: misc/tune2fs.c:1975 @@ -5868,15 +5684,11 @@ msgstr "D #: misc/tune2fs.c:2154 msgid "Error in using clear_mmp. It must be used with -f\n" -msgstr "" -"Erreur lors de l'utilisation de clear_mmp. Elle doit être utilisée avec -f\n" +msgstr "Erreur lors de l'utilisation de clear_mmp. Elle doit être utilisée avec -f\n" #: misc/tune2fs.c:2172 -msgid "" -"The quota feature may only be changed when the filesystem is unmounted.\n" -msgstr "" -"La fonctionalité de quota ne peut être changée que lorsque le système de " -"fichiers est démonté.\n" +msgid "The quota feature may only be changed when the filesystem is unmounted.\n" +msgstr "La fonctionalité de quota ne peut être changée que lorsque le système de fichiers est démonté.\n" #: misc/tune2fs.c:2191 msgid "The UUID may only be changed when the filesystem is unmounted.\n" @@ -6247,8 +6059,7 @@ msgid "" "Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n" "\n" msgstr "" -"Utilisation : %s [-d drapeaux_de_debug] [-f] [-F] [-M] [ -P] [-p] " -"périphérique\n" +"Utilisation : %s [-d drapeaux_de_debug] [-f] [-F] [-M] [ -P] [-p] périphérique\n" " [nouvelle_taille]\n" "\n" @@ -6359,9 +6170,7 @@ msgstr "" #: resize/main.c:452 #, c-format msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n" -msgstr "" -"En train de redimensionner le système de fichiers sur %s à %llu (%dk) " -"blocs.\n" +msgstr "En train de redimensionner le système de fichiers sur %s à %llu (%dk) blocs.\n" #: resize/main.c:461 #, c-format @@ -6393,15 +6202,12 @@ msgstr "lors de la troncature de %s" #: resize/online.c:82 msgid "kernel does not support online resize with sparse_super2" -msgstr "" -"Le noyau ne supporte pas le changement de taille en ligne avec sparse_super2" +msgstr "Le noyau ne supporte pas le changement de taille en ligne avec sparse_super2" #: resize/online.c:87 #, c-format msgid "Filesystem at %s is mounted on %s; on-line resizing required\n" -msgstr "" -"Le système de fichiers de %s est monté sur %s ; le changement de taille doit " -"être effectué en ligne\n" +msgstr "Le système de fichiers de %s est monté sur %s ; le changement de taille doit être effectué en ligne\n" #: resize/online.c:91 msgid "On-line shrinking not supported" @@ -6409,8 +6215,7 @@ msgstr "La r #: resize/online.c:116 msgid "Filesystem does not support online resizing" -msgstr "" -"Le système de fichiers ne supporte pas le changement de taille en ligne" +msgstr "Le système de fichiers ne supporte pas le changement de taille en ligne" #: resize/online.c:125 msgid "Not enough reserved gdt blocks for resizing" @@ -6418,8 +6223,7 @@ msgstr "Pas assez de blocs gdt r #: resize/online.c:132 msgid "Kernel does not support resizing a file system this large" -msgstr "" -"Le noyau ne sait pas retailler un système de fichiers d'une telle taille" +msgstr "Le noyau ne sait pas retailler un système de fichiers d'une telle taille" #: resize/online.c:140 #, c-format @@ -6446,9 +6250,7 @@ msgstr "Le noyau ne supporte pas le changement de taille en ligne" #: resize/online.c:223 #, c-format msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n" -msgstr "" -"En train d'effectuer un changement de taille en ligne de %s vers %llu (%dk) " -"blocs.\n" +msgstr "En train d'effectuer un changement de taille en ligne de %s vers %llu (%dk) blocs.\n" #: resize/online.c:233 msgid "While trying to extend the last group" @@ -6461,12 +6263,8 @@ msgstr "Lors de la tentative d'ajout du groupe num #: resize/online.c:298 #, c-format -msgid "" -"Filesystem at %s is mounted on %s, and on-line resizing is not supported on " -"this system.\n" -msgstr "" -"Le système de fichiers de %s est monté sur %s, et le changement de taille en " -"ligne n'est pas supporté sur ce système.\n" +msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n" +msgstr "Le système de fichiers de %s est monté sur %s, et le changement de taille en ligne n'est pas supporté sur ce système.\n" #: resize/resize2fs.c:402 #, c-format @@ -6487,22 +6285,19 @@ msgstr "nouveaux blocs de m #: resize/resize2fs.c:2046 msgid "Should never happen! No sb in last super_sparse bg?\n" -msgstr "" -"Ne devrait jamais arriver ! Pas de sb dans le dernier super_sparse bg ?\n" +msgstr "Ne devrait jamais arriver ! Pas de sb dans le dernier super_sparse bg ?\n" #: resize/resize2fs.c:2051 msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n" -msgstr "" -"Ne devrait jamais arriver ! old_desc inattendu dans super_sparse bg ?\n" +msgstr "Ne devrait jamais arriver ! old_desc inattendu dans super_sparse bg ?\n" #: resize/resize2fs.c:2129 msgid "Should never happen: resize inode corrupt!\n" -msgstr "" -"Ne devrait jamais se produire : i-noeud de redimensionnement corrompu !\n" +msgstr "Ne devrait jamais se produire : i-noeud de redimensionnement corrompu !\n" #: lib/ext2fs/ext2_err.c:11 -msgid "EXT2FS Library version 1.42.11" -msgstr "Librairie EXT2FS version 1.42.11" +msgid "EXT2FS Library version 1.42.10" +msgstr "Librairie EXT2FS version 1.42.10" #: lib/ext2fs/ext2_err.c:12 msgid "Wrong magic number for ext2_filsys structure" @@ -6550,8 +6345,7 @@ msgstr "Num #: lib/ext2fs/ext2_err.c:23 msgid "Wrong magic number for directory block list structure" -msgstr "" -"Numéro magique invalide pour la structure de liste de bloc de répertoire" +msgstr "Numéro magique invalide pour la structure de liste de bloc de répertoire" #: lib/ext2fs/ext2_err.c:24 msgid "Wrong magic number for icount structure" @@ -6587,8 +6381,7 @@ msgstr "R #: lib/ext2fs/ext2_err.c:32 msgid "Attempt to write to filesystem opened read-only" -msgstr "" -"Tentative d'écriture dans un système de fichiers ouvert en lecture seule" +msgstr "Tentative d'écriture dans un système de fichiers ouvert en lecture seule" #: lib/ext2fs/ext2_err.c:33 msgid "Can't read group descriptors" @@ -6604,13 +6397,11 @@ msgstr "Descripteur de groupe corrompu #: lib/ext2fs/ext2_err.c:36 msgid "Corrupt group descriptor: bad block for inode bitmap" -msgstr "" -"Descripteur de groupe corrompu : bloc invalide pour le bitmap d'i-noeuds" +msgstr "Descripteur de groupe corrompu : bloc invalide pour le bitmap d'i-noeuds" #: lib/ext2fs/ext2_err.c:37 msgid "Corrupt group descriptor: bad block for inode table" -msgstr "" -"Descripteur de groupe corrompu : bloc invalide pour la table d'i-noeuds" +msgstr "Descripteur de groupe corrompu : bloc invalide pour la table d'i-noeuds" #: lib/ext2fs/ext2_err.c:38 msgid "Can't write an inode bitmap" @@ -6650,15 +6441,11 @@ msgstr "R #: lib/ext2fs/ext2_err.c:47 msgid "Attempt to read block from filesystem resulted in short read" -msgstr "" -"La tentative de lecture d'un bloc depuis le système de fichiers a produit " -"une lecture tronquée" +msgstr "La tentative de lecture d'un bloc depuis le système de fichiers a produit une lecture tronquée" #: lib/ext2fs/ext2_err.c:48 msgid "Attempt to write block to filesystem resulted in short write" -msgstr "" -"La tentative d'écriture d'un block vers le système de fichiers a produit une " -"écriture tronquée" +msgstr "La tentative d'écriture d'un block vers le système de fichiers a produit une écriture tronquée" #: lib/ext2fs/ext2_err.c:49 msgid "No free space in the directory" @@ -6714,13 +6501,11 @@ msgstr "Num #: lib/ext2fs/ext2_err.c:62 msgid "Attempt to fudge end of block bitmap past the real end" -msgstr "" -"Tentative de truquage de la fin du bitmap de blocs au-delà de la fin réelle" +msgstr "Tentative de truquage de la fin du bitmap de blocs au-delà de la fin réelle" #: lib/ext2fs/ext2_err.c:63 msgid "Attempt to fudge end of inode bitmap past the real end" -msgstr "" -"Tentative de truquage de la fin du bitmap d'i-noeuds au-delà de la fin réelle" +msgstr "Tentative de truquage de la fin du bitmap d'i-noeuds au-delà de la fin réelle" #: lib/ext2fs/ext2_err.c:64 msgid "Illegal indirect block found" @@ -6784,9 +6569,7 @@ msgstr "Le syst #: lib/ext2fs/ext2_err.c:79 msgid "Filesystem has unsupported read-only feature(s)" -msgstr "" -"Le système de fichiers a une(des) fonctionnalité(s) en lecture seule non " -"supportées" +msgstr "Le système de fichiers a une(des) fonctionnalité(s) en lecture seule non supportées" #: lib/ext2fs/ext2_err.c:80 msgid "IO Channel failed to seek on read or write" @@ -6942,9 +6725,7 @@ msgstr "La liste de blocs de r #: lib/ext2fs/ext2_err.c:118 msgid "Attempt to modify a block mapping via a read-only block iterator" -msgstr "" -"Tentative de modification d'un plan de blocs via un itérateur de blocs en " -"lecture seule" +msgstr "Tentative de modification d'un plan de blocs via un itérateur de blocs en lecture seule" #: lib/ext2fs/ext2_err.c:119 msgid "Wrong magic number for ext4 extent saved path" @@ -7060,14 +6841,11 @@ msgstr "Le canal d'E/S ne supporte pas les num #: lib/ext2fs/ext2_err.c:147 msgid "Can't check if filesystem is mounted due to missing mtab file" -msgstr "" -"Ne peut pas vérifier si le système de fichiers est monté à cause du manque " -"de fichier mtab" +msgstr "Ne peut pas vérifier si le système de fichiers est monté à cause du manque de fichier mtab" #: lib/ext2fs/ext2_err.c:148 msgid "Filesystem too large to use legacy bitmaps" -msgstr "" -"Le système de fichier est trop grand pour utiliser l'ancien style de bitmap" +msgstr "Le système de fichier est trop grand pour utiliser l'ancien style de bitmap" #: lib/ext2fs/ext2_err.c:149 msgid "MMP: invalid magic number" @@ -7111,8 +6889,7 @@ msgstr "La somme de contr #: lib/ext2fs/ext2_err.c:159 msgid "Extent block checksum does not match extent block" -msgstr "" -"La somme de contrôle du block d'extent ne correspond pas au bloc d'extent" +msgstr "La somme de contrôle du block d'extent ne correspond pas au bloc d'extent" #: lib/ext2fs/ext2_err.c:160 msgid "Directory block does not have space for checksum" @@ -7120,14 +6897,11 @@ msgstr "Le bloc de r #: lib/ext2fs/ext2_err.c:161 msgid "Directory block checksum does not match directory block" -msgstr "" -"La somme de contrôle du bloc de répertoire ne correspond pas au bloc de " -"répertoire" +msgstr "La somme de contrôle du bloc de répertoire ne correspond pas au bloc de répertoire" #: lib/ext2fs/ext2_err.c:162 msgid "Extended attribute block checksum does not match block" -msgstr "" -"La somme de contrôle du bloc d'attribut étendu ne correspond pas au bloc" +msgstr "La somme de contrôle du bloc d'attribut étendu ne correspond pas au bloc" #: lib/ext2fs/ext2_err.c:163 msgid "Superblock checksum does not match superblock" @@ -7269,12 +7043,8 @@ msgstr "Valeur enti msgid "Bad magic value in profile_file_data_t" msgstr "Valeur magique invalide dans profile_file_data_t" -#~ msgid "" -#~ "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/" -#~ "s \n" -#~ msgstr "" -#~ "\b\b\b\b\b\b\b\bCopié %llu / %llu blocs (%llu%%) en %s à %.2f Mo/" -#~ "s \n" +#~ msgid "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/s \n" +#~ msgstr "\b\b\b\b\b\b\b\bCopié %llu / %llu blocs (%llu%%) en %s à %.2f Mo/s \n" #~ msgid "" #~ "\n" @@ -7283,10 +7053,8 @@ msgstr "Valeur magique invalide dans profile_file_data_t" #~ "\n" #~ msgstr "" #~ "\n" -#~ "Avertissement : la fonctionalité quota est encore en cours de " -#~ "développement\n" -#~ "Voir https://ext4.wiki.kernel.org/index.php/Quota pour plus " -#~ "d'informations\n" +#~ "Avertissement : la fonctionalité quota est encore en cours de développement\n" +#~ "Voir https://ext4.wiki.kernel.org/index.php/Quota pour plus d'informations\n" #~ "\n" #~ msgid "Could not stat %s --- %s\n" @@ -7308,8 +7076,7 @@ msgstr "Valeur magique invalide dans profile_file_data_t" #~ "alors que le @B d'@i est en cours d'utilisation.\n" #~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n" -#~ msgstr "" -#~ "L'@i %i ne devrait pas avoir EOFBLOCKS_FL défini (taille %Is, lblk %r)\n" +#~ msgstr "L'@i %i ne devrait pas avoir EOFBLOCKS_FL défini (taille %Is, lblk %r)\n" #~ msgid "Couldn't determine journal size" #~ msgstr "N'a pu déterminer la taille du journal" @@ -7327,8 +7094,7 @@ msgstr "Valeur magique invalide dans profile_file_data_t" #~ msgstr "" #~ msgid "short write (only %d bytes) for writing image header" -#~ msgstr "" -#~ "écriture écourtée (seulement %d octets) pour l'écriture de l'en-tête image" +#~ msgstr "écriture écourtée (seulement %d octets) pour l'écriture de l'en-tête image" #~ msgid "invalid fragment size - %s" #~ msgstr "taille de fragment invalide - %s" @@ -7346,23 +7112,19 @@ msgstr "Valeur magique invalide dans profile_file_data_t" #~ msgstr "Le journal N'A PAS été enlevé\n" #~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n" -#~ msgstr "" -#~ "Le @S ne semble pas avoir le drapeau has_journal, mais a un %s de @j " -#~ "ext3.\n" +#~ msgstr "Le @S ne semble pas avoir le drapeau has_journal, mais a un %s de @j ext3.\n" #~ msgid "Error while deleting extent: %m\n" #~ msgstr "Erreur lors de la suppression de l'extent : %m\n" #~ msgid "Recreate journal to make the filesystem ext3 again?\n" -#~ msgstr "" -#~ "Recréer le journal pour rendre le système de fichiers ext3 de nouveau ?\n" +#~ msgstr "Recréer le journal pour rendre le système de fichiers ext3 de nouveau ?\n" #~ msgid "bad block size - %s" #~ msgstr "taille des blocs défectueux - %s" #~ msgid "while retrying to write block bitmaps for %s" -#~ msgstr "" -#~ "lors d'une nouvelle tentative d'écriture des bitmaps de blocs pour %s" +#~ msgstr "lors d'une nouvelle tentative d'écriture des bitmaps de blocs pour %s" #~ msgid "%s failed for %s: %s\n" #~ msgstr "%s a échoué pour %s : %s\n" @@ -7392,17 +7154,14 @@ msgstr "Valeur magique invalide dans profile_file_data_t" #~ msgstr "lors de l'écriture de la table d'i-noeuds (groupe %d)" #~ msgid "Pass 0: Doing byte-swap of filesystem\n" -#~ msgstr "" -#~ "Passe 0 : traitement de l'échange octet par octet du système de fichiers\n" +#~ msgstr "Passe 0 : traitement de l'échange octet par octet du système de fichiers\n" #~ msgid "" #~ "%s: the filesystem must be freshly checked using fsck\n" #~ "and not mounted before trying to byte-swap it.\n" #~ msgstr "" -#~ "%s : le système de fichiers doit avoir été récemment vérifié en " -#~ "utilisant\n" -#~ "fsck et ne doit pas avoir été monté avant d'essayer un échange par octet " -#~ "de\n" +#~ "%s : le système de fichiers doit avoir été récemment vérifié en utilisant\n" +#~ "fsck et ne doit pas avoir été monté avant d'essayer un échange par octet de\n" #~ "celui-ci.\n" #~ msgid "Byte swap" @@ -7414,13 +7173,10 @@ msgstr "Valeur magique invalide dans profile_file_data_t" #~ "cette version d'e2fsck\n" #~ msgid "Incompatible options not allowed when byte-swapping.\n" -#~ msgstr "" -#~ "Les options incompatibles ne sont pas autorisées lors de l'échanges " -#~ "d'octets.\n" +#~ msgstr "Les options incompatibles ne sont pas autorisées lors de l'échanges d'octets.\n" #~ msgid "%s: Filesystem byte order already normalized.\n" -#~ msgstr "" -#~ "%s : l'ordre des octets du système de fichiers a déjà été normalisé.\n" +#~ msgstr "%s : l'ordre des octets du système de fichiers a déjà été normalisé.\n" #~ msgid "invalid starting block - %s" #~ msgstr "bloc de départ invalide - %s" @@ -7449,8 +7205,7 @@ msgstr "Valeur magique invalide dans profile_file_data_t" #~ msgid "Warning: %d-byte inodes not usable on older systems\n" #~ msgstr "" -#~ "Avertissement : les i-noeuds de %d octets ne sont pas utilisables sur " -#~ "les\n" +#~ "Avertissement : les i-noeuds de %d octets ne sont pas utilisables sur les\n" #~ "anciens systèmes\n" #~ msgid "invalid blocks range: %lu-%lu" @@ -7492,16 +7247,13 @@ msgstr "Valeur magique invalide dans profile_file_data_t" #~ "\tea_ver= Date: Sun, 13 Jul 2014 16:18:38 -0400 Subject: [PATCH 07/15] debian: update changelog for 1.42.10-2 release Signed-off-by: Theodore Ts'o --- debian/changelog | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/debian/changelog b/debian/changelog index 1f6d3a85..f01607b8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +e2fsprogs (1.42.11-2) unstable; urgency=low + + * Don't try to build lib/ext2fs/tst_ext2fs unless running "make + check"; this fixes a MIPS FTBFS problem because mips has a special + no-pics build needed for bootloaders where we only build libext2fs + but not libss or other libraries (Closes: #754605) + * Update French translation + + -- Theodore Y. Ts'o Sun, 13 Jul 2014 16:18:27 -0500 + e2fsprogs (1.42.11-1) unstable; urgency=medium * New upstream version From c7c539e8fd86de691475eea00409c6c030f312cd Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Tue, 22 Jul 2014 12:40:56 -0400 Subject: [PATCH 08/15] e4defrag: backwards-allocated files should be defragmented too Currently, e4defrag avoids increasing file fragmentation by comparing the number of runs of physical extents of both the original and the donor files. Unfortunately, there is a bug in the routine that counts physical extents, since it doesn't look at the logical block offsets of the extents. Therefore, a file whose blocks were allocated in reverse order will be seen as only having one big physical extent, and therefore will not be defragmented. Fix the counting routine to consider logical extent offset so that we defragment backwards-allocated files. This could be problematic if we ever gain the ability to lay out logically sparse extents in a physically contiguous manner, but presumably one wouldn't call defrag on such a file. Reported-by: Xiaoguang Wang Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- misc/e4defrag.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/misc/e4defrag.c b/misc/e4defrag.c index a2047935..d0eac605 100644 --- a/misc/e4defrag.c +++ b/misc/e4defrag.c @@ -888,7 +888,9 @@ static int get_physical_count(struct fiemap_extent_list *physical_list_head) do { if ((ext_list_tmp->data.physical + ext_list_tmp->data.len) - != ext_list_tmp->next->data.physical) { + != ext_list_tmp->next->data.physical || + (ext_list_tmp->data.logical + ext_list_tmp->data.len) + != ext_list_tmp->next->data.logical) { /* This extent and next extent are not continuous. */ ret++; } From e13ebfdd5f13876de1b978c8a5ed5a322ed7ba62 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Tue, 22 Jul 2014 12:44:42 -0400 Subject: [PATCH 09/15] debugfs: create inode_dump command to dump an inode in hex Create a command that will dump an entire inode's space in hex. [ Modified by tytso to add a description to the man page, and to add the more formal command name, inode_dump, in addition to short command name of "idump". ] Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- debugfs/debug_cmds.ct | 6 +++++- debugfs/debugfs.8.in | 3 +++ debugfs/debugfs.c | 33 +++++++++++++++++++++++++++++++++ debugfs/debugfs.h | 1 + debugfs/zap.c | 33 +++++++++++++++++++-------------- 5 files changed, 61 insertions(+), 15 deletions(-) diff --git a/debugfs/debug_cmds.ct b/debugfs/debug_cmds.ct index 6a18df67..ed3728fd 100644 --- a/debugfs/debug_cmds.ct +++ b/debugfs/debug_cmds.ct @@ -188,7 +188,7 @@ request do_zap_block, "Zap block: fill with 0, pattern, flip bits etc.", zap_block, zap; request do_block_dump, "Dump contents of a block", - block_dump, bd; + block_dump, bdump, bd; request do_list_quota, "List quota", list_quota, lq; @@ -196,5 +196,9 @@ request do_list_quota, "List quota", request do_get_quota, "Get quota", get_quota, gq; +request do_idump, "Dump the inode structure in hex", + inode_dump, idump, id; + + end; diff --git a/debugfs/debugfs.8.in b/debugfs/debugfs.8.in index 73254d31..9a125f6c 100644 --- a/debugfs/debugfs.8.in +++ b/debugfs/debugfs.8.in @@ -346,6 +346,9 @@ showing its tree structure. Print a listing of the inodes which use the one or more blocks specified on the command line. .TP +.BI inode_dump " filespec" +Print the contents of the inode data structure in hex and ASCII format. +.TP .BI imap " filespec" Print the location of the inode data structure (in the inode table) of the inode diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c index 1703aba8..b41626c1 100644 --- a/debugfs/debugfs.c +++ b/debugfs/debugfs.c @@ -2145,6 +2145,39 @@ void do_imap(int argc, char *argv[]) } +void do_idump(int argc, char *argv[]) +{ + ext2_ino_t ino; + char *buf; + errcode_t err; + int isize; + + if (common_args_process(argc, argv, 2, 2, argv[0], + "", 0)) + return; + ino = string_to_inode(argv[1]); + if (!ino) + return; + + isize = EXT2_INODE_SIZE(current_fs->super); + err = ext2fs_get_mem(isize, &buf); + if (err) { + com_err(argv[0], err, "while allocating memory"); + return; + } + + err = ext2fs_read_inode_full(current_fs, ino, + (struct ext2_inode *)buf, isize); + if (err) { + com_err(argv[0], err, "while reading inode %d", ino); + goto err; + } + + do_byte_hexdump(stdout, buf, isize); +err: + ext2fs_free_mem(&buf); +} + #ifndef READ_ONLY void do_set_current_time(int argc, char *argv[]) { diff --git a/debugfs/debugfs.h b/debugfs/debugfs.h index 9b67f69c..0e75cee4 100644 --- a/debugfs/debugfs.h +++ b/debugfs/debugfs.h @@ -183,3 +183,4 @@ extern time_t string_to_time(const char *arg); /* zap.c */ extern void do_zap_block(int argc, char **argv); extern void do_block_dump(int argc, char **argv); +extern void do_byte_hexdump(FILE *fp, unsigned char *buf, size_t bufsize); diff --git a/debugfs/zap.c b/debugfs/zap.c index 81092097..917bddf9 100644 --- a/debugfs/zap.c +++ b/debugfs/zap.c @@ -176,7 +176,6 @@ void do_block_dump(int argc, char *argv[]) char *file = NULL; unsigned int i, j; int c, err; - int suppress = -1; if (check_fs_open(argv[0])) return; @@ -229,11 +228,21 @@ void do_block_dump(int argc, char *argv[]) goto errout; } - for (i=0; i < current_fs->blocksize; i += 16) { + do_byte_hexdump(stdout, buf, current_fs->blocksize); +errout: + free(buf); +} + +void do_byte_hexdump(FILE *fp, unsigned char *buf, size_t bufsize) +{ + size_t i, j; + int suppress = -1; + + for (i = 0; i < bufsize; i += 16) { if (suppress < 0) { if (i && memcmp(buf + i, buf + i - 16, 16) == 0) { suppress = i; - printf("*\n"); + fprintf(fp, "*\n"); continue; } } else { @@ -241,20 +250,16 @@ void do_block_dump(int argc, char *argv[]) continue; suppress = -1; } - printf("%04o ", i); + fprintf(fp, "%04o ", (unsigned int)i); for (j = 0; j < 16; j++) { - printf("%02x", buf[i+j]); + fprintf(fp, "%02x", buf[i+j]); if ((j % 2) == 1) - putchar(' '); + fprintf(fp, " "); } - putchar(' '); + fprintf(fp, " "); for (j = 0; j < 16; j++) - printf("%c", isprint(buf[i+j]) ? buf[i+j] : '.'); - putchar('\n'); + fprintf(fp, "%c", isprint(buf[i+j]) ? buf[i+j] : '.'); + fprintf(fp, "\n"); } - putchar('\n'); - -errout: - free(buf); - return; + fprintf(fp, "\n"); } From fa633bf9f60b1fe69444fd5c1fdcbce437a4f3c6 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Tue, 22 Jul 2014 12:44:42 -0400 Subject: [PATCH 10/15] debugfs: allow bmap to allocate blocks Allow set_inode_field's bmap command in debugfs to allocate blocks, which enables us to allocate blocks for indirect blocks and internal extent tree blocks. True, we could do this manually, but seems like unnecessary bookkeeping activity for humans. Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- debugfs/set_fields.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debugfs/set_fields.c b/debugfs/set_fields.c index d017eea8..40dc5e7c 100644 --- a/debugfs/set_fields.c +++ b/debugfs/set_fields.c @@ -554,8 +554,9 @@ static errcode_t parse_bmap(struct field_set_info *info, } retval = ext2fs_bmap2(current_fs, set_ino, - (struct ext2_inode *) &set_inode, - NULL, BMAP_SET, array_idx, NULL, &blk); + (struct ext2_inode *) &set_inode, + NULL, BMAP_ALLOC | BMAP_SET, array_idx, NULL, + &blk); if (retval) { com_err("set_inode", retval, "while setting block map"); } From 88e172a942c8d0135ea7a73ab4a6a363ba24b09c Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Tue, 22 Jul 2014 13:52:33 -0400 Subject: [PATCH 11/15] e2fsck: report correct inode number in pass1b If there's a problem with the inode scan during pass 1b, report the inode that we were trying to examine when the error happened, not the inode that just went through the checker. Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- e2fsck/pass1b.c | 1 + 1 file changed, 1 insertion(+) diff --git a/e2fsck/pass1b.c b/e2fsck/pass1b.c index 13bd9e98..b4cc5321 100644 --- a/e2fsck/pass1b.c +++ b/e2fsck/pass1b.c @@ -299,6 +299,7 @@ static void pass1b(e2fsck_t ctx, char *block_buf) if (pctx.errcode == EXT2_ET_BAD_BLOCK_IN_INODE_TABLE) continue; if (pctx.errcode) { + pctx.ino = ino; fix_problem(ctx, PR_1B_ISCAN_ERROR, &pctx); ctx->flags |= E2F_FLAG_ABORT; return; From c4c93e2d74297b5c8eaf9611937e6797997c1f79 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Tue, 22 Jul 2014 13:54:54 -0400 Subject: [PATCH 12/15] e2fsck: don't offer to recreate the journal if fsck is aborting due to bad block bitmaps If e2fsck knows the bitmaps are bad at the exit (probably because they were bad at the start and have not been fixed), don't offer to recreate the journal because doing so causes e2fsck to abort a second time. Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- e2fsck/unix.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/e2fsck/unix.c b/e2fsck/unix.c index 03848c77..8d1bdf3e 100644 --- a/e2fsck/unix.c +++ b/e2fsck/unix.c @@ -1636,7 +1636,8 @@ print_unsupp_features: run_result = e2fsck_run(ctx); e2fsck_clear_progbar(ctx); - if (ctx->flags & E2F_FLAG_JOURNAL_INODE) { + if (!ctx->invalid_bitmaps && + (ctx->flags & E2F_FLAG_JOURNAL_INODE)) { if (fix_problem(ctx, PR_6_RECREATE_JOURNAL, &pctx)) { if (journal_size < 1024) journal_size = ext2fs_default_journal_size(ext2fs_blocks_count(fs->super)); From 27a129f3c20a2c785741a2001532a78f49445be9 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Fri, 18 Jul 2014 15:53:04 -0700 Subject: [PATCH 13/15] e2fsck: skip clearing bad extents if bitmaps are unreadable If the bitmaps are known to be unreadable, don't bother clearing them; just mark fsck to restart itself after pass 5, by which time the bitmaps should be fixed. Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- e2fsck/pass1.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 9ef724ad..e714b0f4 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -1816,6 +1816,26 @@ report_problem: pctx->num = extent.e_len; pctx->blkcount = extent.e_lblk + extent.e_len; if (fix_problem(ctx, problem, pctx)) { + if (ctx->invalid_bitmaps) { + /* + * If fsck knows the bitmaps are bad, + * skip to the next extent and + * try to clear this extent again + * after fixing the bitmaps, by + * restarting fsck. + */ + pctx->errcode = ext2fs_extent_get( + ehandle, + EXT2_EXTENT_NEXT_SIB, + &extent); + ctx->flags |= E2F_FLAG_RESTART_LATER; + if (pctx->errcode == + EXT2_ET_NO_CURRENT_NODE) { + pctx->errcode = 0; + break; + } + continue; + } e2fsck_read_bitmaps(ctx); pctx->errcode = ext2fs_extent_delete(ehandle, 0); From 7722961d2c4c327d45b9c42dd29e8231cc0e1c4b Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 22 Jul 2014 14:48:41 -0400 Subject: [PATCH 14/15] e2fsck: check error return from ext2fs_extent_fix_parents in pass 1 Signed-off-by: Theodore Ts'o --- e2fsck/pass1.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index e714b0f4..1269a12c 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -1843,7 +1843,12 @@ report_problem: pctx->str = "ext2fs_extent_delete"; return; } - ext2fs_extent_fix_parents(ehandle); + pctx->errcode = ext2fs_extent_fix_parents(ehandle); + if (pctx->errcode && + pctx->errcode != EXT2_ET_NO_CURRENT_NODE) { + pctx->str = "ext2fs_extent_fix_parents"; + return; + } pctx->errcode = ext2fs_extent_get(ehandle, EXT2_EXTENT_CURRENT, &extent); @@ -1878,8 +1883,14 @@ report_problem: pctx->blk2 = extent.e_lblk; pctx->num = e_info.curr_level - 1; problem = PR_1_EXTENT_INDEX_START_INVALID; - if (fix_problem(ctx, problem, pctx)) - ext2fs_extent_fix_parents(ehandle); + if (fix_problem(ctx, problem, pctx)) { + pctx->errcode = + ext2fs_extent_fix_parents(ehandle); + if (pctx->errcode) { + pctx->str = "ext2fs_extent_fix_parents"; + return; + } + } } scan_extent_node(ctx, pctx, pb, extent.e_lblk, last_lblk, eof_block, ehandle); From 23d6dd1f1032af47d9a8cc7e9ecc1ec7a9b95718 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Fri, 18 Jul 2014 15:53:11 -0700 Subject: [PATCH 15/15] e2fsck: fix inode coherency issue when iterating an inode's blocks When we're about to iterate the blocks of a block-map file, we need to write the inode out to disk if it's dirty because block_iterate3() will re-read the inode from disk. (In practice this won't happen because nothing dirties block-mapped inodes before the iterate call, but we can program defensively). More importantly, we need to re-read the inode after the iterate() operation because it's possible that mappings were changed (or erased) during the iteration. If we then dirty or clear the inode, we'll mistakenly write the old inode values back out to disk! Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- e2fsck/pass1.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 1269a12c..784195a0 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -80,7 +80,8 @@ static void adjust_extattr_refcount(e2fsck_t ctx, ext2_refcount_t refcount, struct process_block_struct { ext2_ino_t ino; unsigned is_dir:1, is_reg:1, clear:1, suppress:1, - fragmented:1, compressed:1, bbcheck:1; + fragmented:1, compressed:1, bbcheck:1, + inode_modified:1; blk64_t num_blocks; blk64_t max_blocks; e2_blkcnt_t last_block; @@ -1837,6 +1838,7 @@ report_problem: continue; } e2fsck_read_bitmaps(ctx); + pb->inode_modified = 1; pctx->errcode = ext2fs_extent_delete(ehandle, 0); if (pctx->errcode) { @@ -1884,6 +1886,7 @@ report_problem: pctx->num = e_info.curr_level - 1; problem = PR_1_EXTENT_INDEX_START_INVALID; if (fix_problem(ctx, problem, pctx)) { + pb->inode_modified = 1; pctx->errcode = ext2fs_extent_fix_parents(ehandle); if (pctx->errcode) { @@ -2060,6 +2063,7 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, pb.inode = inode; pb.pctx = pctx; pb.ctx = ctx; + pb.inode_modified = 0; pctx->ino = ino; pctx->errcode = 0; @@ -2089,6 +2093,15 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, if (extent_fs && (inode->i_flags & EXT4_EXTENTS_FL)) check_blocks_extents(ctx, pctx, &pb); else { + /* + * If we've modified the inode, write it out before + * iterate() tries to use it. + */ + if (dirty_inode) { + e2fsck_write_inode(ctx, ino, inode, + "check_blocks"); + dirty_inode = 0; + } pctx->errcode = ext2fs_block_iterate3(fs, ino, pb.is_dir ? BLOCK_FLAG_HOLE : 0, block_buf, process_block, &pb); @@ -2097,6 +2110,15 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, * files. */ pb.last_init_lblock = pb.last_block; + /* + * If iterate() changed a block mapping, we have to + * re-read the inode. If we decide to clear the + * inode after clearing some stuff, we'll re-write the + * bad mappings into the inode! + */ + if (pb.inode_modified) + e2fsck_read_inode(ctx, ino, inode, + "check_blocks"); } } end_problem_latch(ctx, PR_LATCH_BLOCK); @@ -2383,6 +2405,7 @@ static int process_block(ext2_filsys fs, if (fix_problem(ctx, problem, pctx)) { blk = *block_nr = 0; ret_code = BLOCK_CHANGED; + p->inode_modified = 1; goto mark_dir; } else return 0;