From 03464bf5cb585f81c150a69e80b2a96c0904da2f Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Fri, 23 Aug 2024 17:40:38 -0400 Subject: [PATCH 01/25] debian: enable Salsa Continuous Integration testing Signed-off-by: Theodore Ts'o --- debian/salsa-ci.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 debian/salsa-ci.yml diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml new file mode 100644 index 000000000..0c22dc437 --- /dev/null +++ b/debian/salsa-ci.yml @@ -0,0 +1,3 @@ +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml From 967bcb155295c5e33c0edc6555bd4e25e9307899 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 28 May 2024 15:18:41 +0200 Subject: [PATCH 02/25] libext2fs: fix unused parameter warnings/errors This fixes building dependent packages that use -Werror. Signed-off-by: Alyssa Ross Link: https://lore.kernel.org/r/20240528131841.576999-1-hi@alyssa.is Signed-off-by: Theodore Ts'o --- lib/ext2fs/ext2fs.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h index 6e87829fe..ff22f66ba 100644 --- a/lib/ext2fs/ext2fs.h +++ b/lib/ext2fs/ext2fs.h @@ -585,7 +585,8 @@ typedef struct ext2_struct_inode_scan *ext2_inode_scan; */ #define EXT2_I_SIZE(i) ((i)->i_size | ((__u64) (i)->i_size_high << 32)) -static inline __u32 __encode_extra_time(time_t seconds, __u32 nsec) +static inline __u32 __encode_extra_time(time_t seconds EXT2FS_ATTR((unused)), + __u32 nsec) { __u32 extra = 0; @@ -595,7 +596,8 @@ static inline __u32 __encode_extra_time(time_t seconds, __u32 nsec) #endif return extra | (nsec << EXT4_EPOCH_BITS); } -static inline time_t __decode_extra_sec(time_t seconds, __u32 extra) +static inline time_t __decode_extra_sec(time_t seconds, + __u32 extra EXT2FS_ATTR((unused))) { #if (SIZEOF_TIME_T > 4) if (extra & EXT4_EPOCH_MASK) @@ -630,7 +632,8 @@ do { \ ((struct ext2_inode_large *)(inode))->field ## _extra) : \ (time_t)(inode)->field) -static inline void __sb_set_tstamp(__u32 *lo, __u8 *hi, time_t seconds) +static inline void __sb_set_tstamp(__u32 *lo, __u8 *hi EXT2FS_ATTR((unused)), + time_t seconds) { *lo = seconds & 0xffffffff; #if (SIZEOF_TIME_T > 4) @@ -639,7 +642,7 @@ static inline void __sb_set_tstamp(__u32 *lo, __u8 *hi, time_t seconds) *hi = 0; #endif } -static inline time_t __sb_get_tstamp(__u32 *lo, __u8 *hi) +static inline time_t __sb_get_tstamp(__u32 *lo, __u8 *hi EXT2FS_ATTR((unused))) { #if (SIZEOF_TIME_T == 4) return *lo; From 6cbb0684c2618a27e49b04e3a99dcbbe90be524c Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 27 May 2024 09:41:21 +0200 Subject: [PATCH 03/25] configure: add SIZEOF_TIME_T to public_config.h This has recently started being used by ext2fs.h. Other users of the ext2fs.h header would always get the 32-bit versions of the __encode_extra_time, __decode_extra_sec, and __sb_set_tstamp; and the 64-bit version of __sb_get_tstamp, due to the SIZEOF_TIME_T macro being undefined and treated as zero. Fixes: 5b599a32 ("Fix 32-bit build and test failures") Signed-off-by: Alyssa Ross Link: https://lore.kernel.org/r/20240527074121.2767083-1-hi@alyssa.is Signed-off-by: Theodore Ts'o --- configure | 5 +++++ configure.ac | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/configure b/configure index cba3191c2..e299be028 100755 --- a/configure +++ b/configure @@ -13018,6 +13018,11 @@ if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then else echo "#undef HAVE_SYS_TYPES_H" >> public_config.h fi +if grep SIZEOF_TIME_T confdefs.h > tmp_config.$$; then + uniq tmp_config.$$ >> public_config.h +else + echo "#undef SIZEOF_TIME_T" >> public_config.h +fi if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then uniq tmp_config.$$ >> public_config.h else diff --git a/configure.ac b/configure.ac index 131caef38..9a3dff1cf 100644 --- a/configure.ac +++ b/configure.ac @@ -1156,6 +1156,11 @@ if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then else echo "#undef HAVE_SYS_TYPES_H" >> public_config.h fi +if grep SIZEOF_TIME_T confdefs.h > tmp_config.$$; then + uniq tmp_config.$$ >> public_config.h +else + echo "#undef SIZEOF_TIME_T" >> public_config.h +fi if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then uniq tmp_config.$$ >> public_config.h else From fb702218ab47b045cbbaf3268984fbdc5f75632e Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Wed, 29 May 2024 11:12:14 -0700 Subject: [PATCH 04/25] fuse2fs: explicitly set _FILE_OFFSET_BITS again In commit 3ab99d9b602, the build system was changed not to set _FILE_OFFSET_BITS explicitly due to some weird error on mips64el. Unfortunately, this breaks the aarch64 Debian build because libfuse 2.9.9 requires this value to be set explicitly. Restore this dumb preprocessor symbol dependency with even more hackery as documented in the commit. Fixes: 3ab99d9b602 ("Remove explicit #define of _FILE_OFFSET_BITS") Signed-off-by: Darrick J. Wong Link: https://lore.kernel.org/r/20240529181214.GA52969@frogsfrogsfrogs Signed-off-by: Theodore Ts'o --- misc/fuse2fs.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c index 56a0d5458..01293868b 100644 --- a/misc/fuse2fs.c +++ b/misc/fuse2fs.c @@ -26,7 +26,23 @@ #endif #include #include +#ifdef __SET_FOB_FOR_FUSE +# error Do not set magic value __SET_FOB_FOR_FUSE!!!! +#endif +#ifndef _FILE_OFFSET_BITS +/* + * Old versions of libfuse (e.g. Debian 2.9.9 package) required that the build + * system set _FILE_OFFSET_BITS explicitly, even if doing so isn't required to + * get a 64-bit off_t. AC_SYS_LARGEFILE doesn't set any _FILE_OFFSET_BITS if + * it's not required (such as on aarch64), so we must inject it here. + */ +# define __SET_FOB_FOR_FUSE +# define _FILE_OFFSET_BITS 64 +#endif /* _FILE_OFFSET_BITS */ #include +#ifdef __SET_FOB_FOR_FUSE +# undef _FILE_OFFSET_BITS +#endif /* __SET_FOB_FOR_FUSE */ #include #include "ext2fs/ext2fs.h" #include "ext2fs/ext2_fs.h" From 2bb33e3b0c490b2798dab9ef25459b399075c1ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Lindstr=C3=B6m?= Date: Sun, 2 Jun 2024 14:07:21 +0200 Subject: [PATCH 05/25] Fix implicit my_llseek declaration error when targeting musl libc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Henrik Lindström Link: https://lore.kernel.org/r/20240602120721.387561-1-henrik@lxm.se Signed-off-by: Theodore Ts'o --- lib/blkid/llseek.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/blkid/llseek.c b/lib/blkid/llseek.c index 59298646f..edb643209 100644 --- a/lib/blkid/llseek.c +++ b/lib/blkid/llseek.c @@ -52,7 +52,7 @@ extern long long llseek(int fd, long long offset, int origin); #if SIZEOF_LONG == SIZEOF_LONG_LONG -#define llseek lseek +#define my_llseek lseek #else /* SIZEOF_LONG != SIZEOF_LONG_LONG */ From 5cf2c6b1df44e5ef145a5af8e6317ad87b190500 Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Wed, 5 Jun 2024 14:03:52 -0600 Subject: [PATCH 06/25] tests: write f_badjour_encrypted output to log Write the mke2fs and debugfs output from f_badjour_encrypted/script into a log file instead of stdout/stderr, so that it doesn't mess up the "make check" output, and is available if this test ever fails. [ Fixed missing definition of $LOG -- TYT ] Fixes: b0cd09e5 ("e2fsck: don't allow journal to have encrypt flag") Signed-off-by: Andreas Dilger Link: https://lore.kernel.org/r/20240605200408.55221-1-adilger@dilger.ca Signed-off-by: Theodore Ts'o --- tests/f_badjour_encrypted/script | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/f_badjour_encrypted/script b/tests/f_badjour_encrypted/script index e6778f1df..07a8b3dba 100644 --- a/tests/f_badjour_encrypted/script +++ b/tests/f_badjour_encrypted/script @@ -3,9 +3,13 @@ if ! test -x $DEBUGFS_EXE; then return 0 fi -touch $TMPFILE -$MKE2FS -t ext4 -b 1024 $TMPFILE 2M -$DEBUGFS -w -R 'set_inode_field <8> flags 0x80800' $TMPFILE +LOG=$test_name.log + +touch $TMPFILE >> $LOG 2>&1 +$MKE2FS -t ext4 -b 1024 $TMPFILE 2M >> $LOG 2>&1 +$DEBUGFS -w -R 'set_inode_field <8> flags 0x80800' $TMPFILE >> $LOG 2>&1 SKIP_GUNZIP="true" . $cmd_dir/run_e2fsck + +unset LOG From a8df015009e7cd71b411f21e7d6f0797a28cba5c Mon Sep 17 00:00:00 2001 From: "Luis Henriques (SUSE)" Date: Tue, 11 Jun 2024 15:27:03 +0100 Subject: [PATCH 07/25] e2fsck: don't skip checks if the orphan file is present in the filesystem If the filesystem supports the orphan file feature and that file is present then don't skip the filesystem checks as that file may need to be cleaned up. Signed-off-by: Luis Henriques (SUSE) Link: https://lore.kernel.org/r/20240611142704.14307-2-luis.henriques@linux.dev Signed-off-by: Theodore Ts'o --- e2fsck/unix.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/e2fsck/unix.c b/e2fsck/unix.c index de20b216d..7768f0ed7 100644 --- a/e2fsck/unix.c +++ b/e2fsck/unix.c @@ -371,6 +371,10 @@ static void check_if_skip(e2fsck_t ctx) if (ctx->options & E2F_OPT_JOURNAL_ONLY) goto skip; + if (ext2fs_has_feature_orphan_file(fs->super) && + ext2fs_has_feature_orphan_present(fs->super)) + return; + lastcheck = ext2fs_get_tstamp(sb, s_lastcheck); if (lastcheck > ctx->now) lastcheck -= ctx->time_fudge; From 9448aedd93521deb038f64ba16eff574628f0632 Mon Sep 17 00:00:00 2001 From: "Luis Henriques (SUSE)" Date: Tue, 11 Jun 2024 15:27:04 +0100 Subject: [PATCH 08/25] tests: new test to check that the orphan file is cleaned up This test verifies that e2fsck clears the orphan file if it is present. The filesystem was created by simply creating a bunch of empty files and, while those files were open by an application, delete some of them in order to add them to the orphan file. After this, the filesystem is simply powered off. An e2fsck will need to clear the orphaned inodes but also to clean the orphan file. Signed-off-by: Luis Henriques (SUSE) Link: https://lore.kernel.org/r/20240611142704.14307-3-luis.henriques@linux.dev Signed-off-by: Theodore Ts'o --- tests/f_clear_orphan_file/expect.1 | 35 +++++++++++++++++++++++++++++ tests/f_clear_orphan_file/expect.2 | 7 ++++++ tests/f_clear_orphan_file/image.gz | Bin 0 -> 12449 bytes tests/f_clear_orphan_file/name | 1 + tests/f_clear_orphan_file/script | 2 ++ 5 files changed, 45 insertions(+) create mode 100644 tests/f_clear_orphan_file/expect.1 create mode 100644 tests/f_clear_orphan_file/expect.2 create mode 100644 tests/f_clear_orphan_file/image.gz create mode 100644 tests/f_clear_orphan_file/name create mode 100644 tests/f_clear_orphan_file/script diff --git a/tests/f_clear_orphan_file/expect.1 b/tests/f_clear_orphan_file/expect.1 new file mode 100644 index 000000000..281b131cb --- /dev/null +++ b/tests/f_clear_orphan_file/expect.1 @@ -0,0 +1,35 @@ +test_filesys: recovering journal +Clearing orphaned inode 13 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 14 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 15 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 16 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 17 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 18 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 19 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 20 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 21 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 22 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 23 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 24 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 25 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 26 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 27 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 28 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 29 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 30 (uid=0, gid=0, mode=0100644, size=0) +Clearing orphaned inode 31 (uid=0, gid=0, mode=0100644, size=0) +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Free inodes count wrong (2055, counted=2005). +Fix? yes + +Orphan file (inode 12) block 0 is not clean. +Clear? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 43/2048 files (2.3% non-contiguous), 1650/8192 blocks +Exit status is 1 diff --git a/tests/f_clear_orphan_file/expect.2 b/tests/f_clear_orphan_file/expect.2 new file mode 100644 index 000000000..f719dbbaa --- /dev/null +++ b/tests/f_clear_orphan_file/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 43/2048 files (2.3% non-contiguous), 1650/8192 blocks +Exit status is 0 diff --git a/tests/f_clear_orphan_file/image.gz b/tests/f_clear_orphan_file/image.gz new file mode 100644 index 0000000000000000000000000000000000000000..c93cf754ddbe02dfad966364cc943a3824052cce GIT binary patch literal 12449 zcmeH~dsLG7*2imVrqeqWHXWnMl4BQbDsAi{jVWY~nWLszdC3cnrdFg>hKdMJ^EQ)~ zm1U`ww^Gx*Mcxw?rZgE%WxS#xFlk1DhziJ^-%<3RcfD(!f6iaC7W~0_*51!%@BLvv z`}chiN&ooAQjfD?Uo1Hn@pE|SqVb`xAD#@YTlCkyrfq*XEpuA>_Qx%+mu8tXU377n z>~EU74zKD>Ie5&${)lTxtBgdX{D=Syi?HUA$}w~-p%Rl%lr_DJQyLuVDF!(rjkMv zmpqn)nH^5}ydgL=W6QVxkB|`Fi+aW0l~v*Ad*{qguT2kcM(S9RF&~GDD*ag-MZd2s z(0bR}h*nQKnB8$1)?qj{L|+eDHI0mCJ8~67G@GQ@v$6DFi~g(6!AlMP+l(hX6)g9X z70?y8?b~CP6F98Y)cRj@9Tjmd88fLC*?X0}S&W>$q21}0YyauQ*y0x_H|HY;K9JN9 zAp@^QY@5-6nF^HSFsp>^3)@z!1??de)Om1C3mX7e|KC^q^bF9LU3;-2w2#_VJpN7r z8{3`{6(&(IZayMSWXMxV{Xyz?W{$YH(hm)Cj=4GswK~onC~@}RYzyyDquJurLB($t zPQA}o4=-# zDl{u>9$__?n$}B8_BcM4a>byqz|<^D%3Z%xi%*~AxB8J-mb}uh#~v7oLP!(Vc~pXQ z(q%@|bDv3wshkeF7W4F$s4Lzp*<#`m2VPZnf&3L(*`I;L{5jK+0~$#^Bt@^u28X9c zd^#r!Jk`Xj$MNdZo?xUUygYIX(Vr5i`r?%q3v@(cR9NTwEF^94$(FH4J9Fe2L_5%{5Bdt9L z%-}`9hJSSbPF(!()d4VMmE`R~uuj?!wF}jD0~YNWZ&i;a7O5sW4LvwEg6*#B$nm>1HVoz}bL zzDH`Wdu#Mo*^`&G{(bm;tuu20C9?t1+lqwuxw8S&V<~Y5D?(g252fD~Ei)&%3JT5? zro?$pKkCPm+$*A70yCsLii9b;t$0#}s|)Au_$e>gk@G(ZTJmf1O&^;2_zMd1Y5ArP z_Ex|sl7{5UT?*R?9QLPe}!dHMhY{n_gV_)kT$Q> z)KhZ9cBWYf)V(hn%rd#dF54ajuI2&Pl)eaFi~~J9>R0x@>ruyV-JC2YNZW2oqsy2+ z^ZV%flHad=a3CK#>BQxK_0zcRrS2jGtprB9-Swi6RcYSumP1x0Cg94@S0ti?1phYYmYxa_u(*SYG~(ESE*Z~so`-Oo<*EAE*9 zZ0&)|6TO3C;)aS}c4o%DMO3oT*P2GqNy#c1b0iOrxQ9f2`1H#8PDH@ou)`TUhc(s| zF$+S31NL~WR7e;p%=|{3GdWVokD1U9=q4GDC|k@Ly&V&~e+KFbaa9Fz_RUS2lK`l` zX10^;!OV_w5EO1%_dJHVvs>qA$|IE(^amgSdQ8h3OF~ zo)JclQVoaJU?(Sq%+mU%y(&QK-F`@g-rTvN#x+ z;2MkB4_*A4l_9e&-Y-tWWFvK*oO0lV_U)7QKUj#!Q?6UQt!wd$m&Uk0~@X`F!5Ah0;%s<^m z#GM`osz}@nYWU`ClKWHXvmj$Sbw?-2x?w~QA23Td)_tPt2@5po7bITX*!qqTFhZ+} zZgJvuY!abAZjwPmG+e|zq7JiOExsarpMj<4IK7Ada1ua5pLE@JoaT*XFsQ%d;%yfj zvvy1~CER2W=;u#NOi^q}+NjsUlhv4qIrDYV#R{_}Q5bmVEiF%1U%Z4z-j-Aa?k4pD zoLu*|fH1-cfUBXY@RNlB^0N!;N@Pw^9_K2Q{tTVCBbN+wh$%>jTqXCcLJ`M?JfuHbf)IzsRId~(f;{$9kFiz!U zHx%O5UeZ0B#qiSEri}z*K8%e?c-9=M7?ZJpy5;4vC-SGoOHW#{#?QIW0G z0JR#Y)Icfmb~ymI!BhXVfg47pWp^9awl&tzJWK9h68f}o`wkcKk=Og%UWTTgcxhyE%Voo!1EA8iCNji+aS zMlvGFdECH9r@GWalNt+hB=j*MlNiQSD4^hvU-3Xs%8(X4j*ueAvX4)0qlbn(8cjfU zy+xW(x9qclc6nN;ux4GEFvO`zC?y_(0H>+9RwYj;*3}qZ#Z)ERy0g>yIxbcv5)zp~Lf$N{w z$t>eEBhxT&o{RiPw#m9NK$*-MZZGnx7b5b6m09dT(>M ztwVCkbnXwx_ zD~={N?J`YU*kHwCxVY5>s>Y5(T?G516t=~}Gd;@i=oCS3R+fXTAmI<{8`{c52_qn1 zSIFxjU*N{(>?;Q^c%KP_RgMeW8!GyFW@BAc@@*};uT0(`N?us^=&*NS;vq7~`nws> ze7rFy;Criu6n|lNZM=&_h35@`be2>r9JsM?rX-`gg|`}}xDM|yVFh(} ze%q%b(O4?E7p;CY#gOqxd1SP0lfc1j2C^G`Tf5l#%!qTm@Ok=lc3T+ZMtCIVo1h+C zyr*~Vpx~;)hWDxz6*(HoY;kn*rr1hwC5LQnN`yXDkS%v-2_lHCl_^rb_miiET$X10 zx8udXGx$SPByBws!^qFQoc`(dfOS#nP-r?{tV}LFiy;iV-1p!RG%m-@NrQ1(Nai+- zPpL5;vB=#20t$4GYs`E0!kt2@>cx-Y@1{{vjpp56$b6RbDZ%2g>XbC9bz@|=7tD?F zw5r#AO!gox&ND7zw2?|PZ|v;$Vim9gP6?<|m8)xDPEgXhB9m_6ZcEu!>3Vlp&ch(e zxuRtStjJS>0;%m$SNm;^1(G0+=lvkwxgu;2*4`2y7{@7m_QHd*xVm@cnCwYf+`+hr z=g%VDC~K;Fm-Ju{TjGz$X`eqceGufTI_3>~uKdy7=74!?_p%(+nflU+H9;|9+Y?U|j%&pZ9ekPtVn2vi$m#s{%zd`F z_&1eP8l+m?mn0rj&%IFmb8{y`qB@lz>jLg*Ut$PXAuf2UgJpS>xScD%PIn{O9sWNr z71GB8;2E}lMMJdwH(tC_ZapvFB094!`f?SK!~zy17fnmb(6wh}58xpS2XEvAG|BiA z%xg*Ar<(%+GcjHRQkU&ozbDWAmR=b`8QL_mJx+7{07C~^S1>qigiNaG%nF{@PK`c@ zi-BB4>$`3t4=pU`STd}}h1vW022*gf0lf%0A{Dt;i0#JDGGdCGJ$BPgn8`k0UDhRu56MK54axk_3R_Oh@Bwf%2V&O08L~h@qL$XV`_Qz!R=S{Hs(6(4_NOn+M)m^ zK>lNl-iAOamGH8q5BNIFe(*=A-pkz2Z}#w;iv^mMjozo`t{}0*|4NO%)Rt?JqVxL1 zj|JFtf4z4Cp573ww{-{Yu&LDF_tbUO`Eb2W_BDeRslUQtM7(}|`RqvXRGPl%n5{@! zh~E2-7!Yjs#7z#!?`ptpy)%%1g5|gTKj1aE3Lb^6%Gzq2j+2fyt#_i0Ho- IExNks-^UvQM*si- literal 0 HcmV?d00001 diff --git a/tests/f_clear_orphan_file/name b/tests/f_clear_orphan_file/name new file mode 100644 index 000000000..89ba2247f --- /dev/null +++ b/tests/f_clear_orphan_file/name @@ -0,0 +1 @@ +clear orphan file diff --git a/tests/f_clear_orphan_file/script b/tests/f_clear_orphan_file/script new file mode 100644 index 000000000..2210e9ddc --- /dev/null +++ b/tests/f_clear_orphan_file/script @@ -0,0 +1,2 @@ +FSCK_OPT=-y +. $cmd_dir/run_e2fsck From 2c1e5543169254863e0edc40bd35712e21073479 Mon Sep 17 00:00:00 2001 From: Gwendal Grignou Date: Thu, 18 Jul 2024 10:52:04 -0700 Subject: [PATCH 09/25] tune2fs: only set the superblock as dirty if the default group is modified Similar to commit 2eb3b20e80, it speeds up `tunefs -g` command when the group argument is identical. Signed-off-by: Theodore Ts'o Link: https://lore.kernel.org/r/20240718175204.1590917-1-gwendal@chromium.org --- misc/tune2fs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/misc/tune2fs.c b/misc/tune2fs.c index 6de40e93c..49772d3ea 100644 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@ -3381,9 +3381,13 @@ _("Warning: The journal is dirty. You may wish to replay the journal like:\n\n" printf(_("Setting error behavior to %d\n"), errors); } if (g_flag) { - sb->s_def_resgid = resgid; - ext2fs_mark_super_dirty(fs); - printf(_("Setting reserved blocks gid to %lu\n"), resgid); + if (sb->s_def_resgid != resgid) { + sb->s_def_resgid = resgid; + ext2fs_mark_super_dirty(fs); + printf(_("Setting reserved blocks gid to %lu\n"), resgid); + } else { + printf(_("Reserved blocks gid already set to %lu\n"), resgid); + } } if (i_flag) { if ((unsigned long long)interval >= (1ULL << 32)) { From ad56ccaae8b6d69350273c01ae2f72a66df245e0 Mon Sep 17 00:00:00 2001 From: Jan Kara Date: Wed, 25 Sep 2024 19:19:26 +0200 Subject: [PATCH 10/25] resize2fs: check number of group descriptors only if meta_bg is disabled When meta_bg feature is enabled, the total number of group descriptors is not really limiting the filesystem size. So there's no reason to check it in that case. This allows resize2fs to resize filesystems past 256TB boundary similarly as the kernel can do it. Signed-off-by: Jan Kara Reviewed-by: Ojaswin Mujoo Link: https://lore.kernel.org/r/20240925171926.11354-1-jack@suse.cz Signed-off-by: Theodore Ts'o --- resize/main.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/resize/main.c b/resize/main.c index f914c0507..08a4bbaf7 100644 --- a/resize/main.c +++ b/resize/main.c @@ -270,8 +270,6 @@ int main (int argc, char ** argv) long sysval; int len, mount_flags; char *mtpt, *undo_file = NULL; - dgrp_t new_group_desc_count; - unsigned long new_desc_blocks; #ifdef ENABLE_NLS setlocale(LC_MESSAGES, ""); @@ -551,17 +549,22 @@ int main (int argc, char ** argv) new_size &= ~((blk64_t)(1ULL << fs->cluster_ratio_bits) - 1); } - new_group_desc_count = ext2fs_div64_ceil(new_size - - fs->super->s_first_data_block, - EXT2_BLOCKS_PER_GROUP(fs->super)); - new_desc_blocks = ext2fs_div_ceil(new_group_desc_count, - EXT2_DESC_PER_BLOCK(fs->super)); - if ((new_desc_blocks + fs->super->s_first_data_block) > - EXT2_BLOCKS_PER_GROUP(fs->super)) { - com_err(program_name, 0, - _("New size results in too many block group " - "descriptors.\n")); - goto errout; + if (!ext2fs_has_feature_meta_bg(fs->super)) { + dgrp_t new_group_desc_count; + unsigned long new_desc_blocks; + + new_group_desc_count = ext2fs_div64_ceil(new_size - + fs->super->s_first_data_block, + EXT2_BLOCKS_PER_GROUP(fs->super)); + new_desc_blocks = ext2fs_div_ceil(new_group_desc_count, + EXT2_DESC_PER_BLOCK(fs->super)); + if ((new_desc_blocks + fs->super->s_first_data_block) > + EXT2_BLOCKS_PER_GROUP(fs->super)) { + com_err(program_name, 0, + _("New size results in too many block group " + "descriptors.\n")); + goto errout; + } } if (!force && new_size < min_size) { From e26c0d0431fef925c15e07c6df34ee6500a7255b Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 26 Nov 2024 00:28:43 -0500 Subject: [PATCH 11/25] fuse2fs: fix fuse2fs --helpfull https://github.com/tytso/e2fsprogs/issues/204 Signed-off-by: Theodore Ts'o --- misc/fuse2fs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c index 01293868b..a6390ab5d 100644 --- a/misc/fuse2fs.c +++ b/misc/fuse2fs.c @@ -3775,7 +3775,7 @@ static int fuse2fs_opt_proc(void *data, const char *arg, "\n", outargs->argv[0]); if (key == FUSE2FS_HELPFULL) { - fuse_opt_add_arg(outargs, "-ho"); + fuse_opt_add_arg(outargs, "-h"); fuse_main(outargs->argc, outargs->argv, &fs_ops, NULL); } else { fprintf(stderr, "Try --helpfull to get a list of " From 1e8e9ed9e6c88683016952de413797441c74df38 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 27 Nov 2024 03:20:40 -0500 Subject: [PATCH 12/25] misc: sort the extended and journal options in man pages for tune2fs/mke2fs Signed-off-by: Theodore Ts'o --- misc/mke2fs.8.in | 218 +++++++++++++++++++++++----------------------- misc/tune2fs.8.in | 152 ++++++++++++++++---------------- 2 files changed, 185 insertions(+), 185 deletions(-) diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in index c12b607a2..53ad58b40 100644 --- a/misc/mke2fs.8.in +++ b/misc/mke2fs.8.in @@ -284,6 +284,21 @@ option is still accepted for backwards compatibility, but is deprecated. The following extended options are supported: .RS 1.2i .TP +.B assume_storage_prezeroed\fR[\fB= \fI<0 to disable, 1 to enable>\fR] +If enabled, +.BR mke2fs +assumes that the storage device has been prezeroed, skips zeroing the journal +and inode tables, and annotates the block group flags to signal that the inode +table has been zeroed. +.TP +.B discard +Attempt to discard blocks at mkfs time (discarding blocks initially is useful +on solid state devices and sparse / thin-provisioned storage). When the device +advertises that discard also zeroes data (any subsequent read after the discard +and before write returns zero), then mark all not-yet-zeroed inode tables as +zeroed. This significantly speeds up file system initialization. This is set +as default. +.TP .BI encoding= encoding-name Enable the .I casefold @@ -309,46 +324,6 @@ In the default configuration, the .I strict flag is disabled. .TP -.BI mmp_update_interval= interval -Adjust the initial MMP update interval to -.I interval -seconds. Specifying an -.I interval -of 0 means to use the default interval. The specified interval must -be less than 300 seconds. Requires that the -.B mmp -feature be enabled. -.TP -.BI stride= stride-size -Configure the file system for a RAID array with -.I stride-size -file system blocks. This is the number of blocks read or written to disk -before moving to the next disk, which is sometimes referred to as the -.I chunk size. -This mostly affects placement of file system metadata like bitmaps at -.B mke2fs -time to avoid placing them on a single disk, which can hurt performance. -It may also be used by the block allocator. -.TP -.BI stripe_width= stripe-width -Configure the file system for a RAID array with -.I stripe-width -file system blocks per stripe. This is typically stride-size * N, where -N is the number of data-bearing disks in the RAID (e.g. for RAID 5 there is one -parity disk, so N will be the number of disks in the array minus 1). -This allows the block allocator to prevent read-modify-write of the -parity in a RAID stripe if possible when the data is written. -.TP -.BI offset= offset -Create the file system at an offset from the beginning of the device or -file. This can be useful when creating disk images for virtual machines. -.TP -.BI resize= max-online-resize -Reserve enough space so that the block group descriptor table can grow -to support a file system that has -.I max-online-resize -blocks. -.TP .B lazy_itable_init\fR[\fB= \fI<0 to disable, 1 to enable>\fR] If enabled and the uninit_bg feature is enabled, the inode table will not be fully initialized by @@ -367,12 +342,17 @@ small risk if the system crashes before the journal has been overwritten entirely one time. If the option value is omitted, it defaults to 1 to enable lazy journal inode zeroing. .TP -.B assume_storage_prezeroed\fR[\fB= \fI<0 to disable, 1 to enable>\fR] -If enabled, -.BR mke2fs -assumes that the storage device has been prezeroed, skips zeroing the journal -and inode tables, and annotates the block group flags to signal that the inode -table has been zeroed. +.BI mmp_update_interval= interval +Adjust the initial MMP update interval to +.I interval +seconds. Specifying an +.I interval +of 0 means to use the default interval. The specified interval must +be less than 300 seconds. Requires that the +.B mmp +feature be enabled. +.B nodiscard +Do not attempt to discard blocks at mkfs time. .TP .B no_copy_xattrs Normally @@ -389,6 +369,16 @@ If the file system feature is enabled this option controls whether there will be 0, 1, or 2 backup superblocks created in the file system. .TP +.BI offset= offset +Create the file system at an offset from the beginning of the device or +file. This can be useful when creating disk images for virtual machines. +.TP +.TP +.BI orphan_file_size= size +Set size of the file for tracking unlinked but still open inodes and inodes +with truncate in progress. Larger file allows for better scalability, reserving +a few blocks per cpu is ideal. +.TP .B packed_meta_blocks\fR[\fB= \fI<0 to disable, 1 to enable>\fR] Place the allocation bitmaps and the inode table at the beginning of the disk. This option requires that the flex_bg file system feature to be @@ -399,6 +389,22 @@ It also maximizes the range of contiguous data blocks, which can be useful for certain specialized use cases, such as supported Shingled Drives. .TP +.B quotatype +Specify the which quota types (usrquota, grpquota, prjquota) which +should be enabled in the created file system. The argument of this +extended option should be a colon separated list. This option has +effect only if the +.B quota +feature is set. The default quota types to be initialized if this +option is not specified is both user and group quotas. If the project +feature is enabled that project quotas will be initialized as well. +.TP +.BI resize= max-online-resize +Reserve enough space so that the block group descriptor table can grow +to support a file system that has +.I max-online-resize +blocks. +.TP .BI root_owner [=uid:gid] Specify the numeric user and group ID of the root directory. If no UID:GID is specified, use the user and group ID of the user running \fBmke2fs\fR. @@ -413,35 +419,29 @@ Specify the root directory permissions in octal format. If no permissions are specified then the root directory permissions would be set in accordance with the default filesystem umask. .TP +.BI stride= stride-size +Configure the file system for a RAID array with +.I stride-size +file system blocks. This is the number of blocks read or written to disk +before moving to the next disk, which is sometimes referred to as the +.I chunk size. +This mostly affects placement of file system metadata like bitmaps at +.B mke2fs +time to avoid placing them on a single disk, which can hurt performance. +It may also be used by the block allocator. +.TP +.BI stripe_width= stripe-width +Configure the file system for a RAID array with +.I stripe-width +file system blocks per stripe. This is typically stride-size * N, where +N is the number of data-bearing disks in the RAID (e.g. for RAID 5 there is one +parity disk, so N will be the number of disks in the array minus 1). +This allows the block allocator to prevent read-modify-write of the +parity in a RAID stripe if possible when the data is written. +.TP .B test_fs Set a flag in the file system superblock indicating that it may be mounted using experimental kernel code, such as the ext4dev file system. -.TP -.BI orphan_file_size= size -Set size of the file for tracking unlinked but still open inodes and inodes -with truncate in progress. Larger file allows for better scalability, reserving -a few blocks per cpu is ideal. -.TP -.B discard -Attempt to discard blocks at mkfs time (discarding blocks initially is useful -on solid state devices and sparse / thin-provisioned storage). When the device -advertises that discard also zeroes data (any subsequent read after the discard -and before write returns zero), then mark all not-yet-zeroed inode tables as -zeroed. This significantly speeds up file system initialization. This is set -as default. -.TP -.B nodiscard -Do not attempt to discard blocks at mkfs time. -.TP -.B quotatype -Specify the which quota types (usrquota, grpquota, prjquota) which -should be enabled in the created file system. The argument of this -extended option should be a colon separated list. This option has -effect only if the -.B quota -feature is set. The default quota types to be initialized if this -option is not specified is both user and group quotas. If the project -feature is enabled that project quotas will be initialized as well. .RE .TP .B \-F @@ -532,43 +532,6 @@ Journal options are comma separated, and may take an argument using the equals ('=') sign. The following journal options are supported: .RS 1.2i -.TP -.BI size= journal-size -Create an internal journal (i.e., stored inside the file system) of size -.I journal-size -megabytes. -The size of the journal must be at least 1024 file system blocks -(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.) -and may be no more than 10,240,000 file system blocks or half the total -file system size (whichever is smaller) -.TP -.BI fast_commit_size= fast-commit-size -Create an additional fast commit journal area of size -.I fast-commit-size -kilobytes. -This option is only valid if -.B fast_commit -feature is enabled -on the file system. If this option is not specified and if -.B fast_commit -feature is turned on, fast commit area size defaults to -.I journal-size -/ 64 megabytes. The total size of the journal with -.B fast_commit -feature set is -.I journal-size -+ ( -.I fast-commit-size -* 1024) megabytes. The total journal size may be no more than -10,240,000 file system blocks or half the total file system size -(whichever is smaller). -.TP -.BI location =journal-location -Specify the location of the journal. The argument -.I journal-location -can either be specified as a block number, or if the number has a units -suffix (e.g., 'M', 'G', etc.) interpret it as the offset from the -beginning of the file system. @JDEV@.TP @JDEV@.BI device= external-journal @JDEV@Attach the file system to the journal block device located on @@ -602,6 +565,43 @@ beginning of the file system. @JDEV@.B -L @JDEV@option of @JDEV@.BR tune2fs (8). +.TP +.BI fast_commit_size= fast-commit-size +Create an additional fast commit journal area of size +.I fast-commit-size +kilobytes. +This option is only valid if +.B fast_commit +feature is enabled +on the file system. If this option is not specified and if +.B fast_commit +feature is turned on, fast commit area size defaults to +.I journal-size +/ 64 megabytes. The total size of the journal with +.B fast_commit +feature set is +.I journal-size ++ ( +.I fast-commit-size +* 1024) megabytes. The total journal size may be no more than +10,240,000 file system blocks or half the total file system size +(whichever is smaller). +.TP +.BI location =journal-location +Specify the location of the journal. The argument +.I journal-location +can either be specified as a block number, or if the number has a units +suffix (e.g., 'M', 'G', etc.) interpret it as the offset from the +beginning of the file system. +.TP +.BI size= journal-size +Create an internal journal (i.e., stored inside the file system) of size +.I journal-size +megabytes. +The size of the journal must be at least 1024 file system blocks +(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.) +and may be no more than 10,240,000 file system blocks or half the total +file system size (whichever is smaller) .RE @JDEV@.IP @JDEV@Only one of the diff --git a/misc/tune2fs.8.in b/misc/tune2fs.8.in index dcf108c1f..970f8739a 100644 --- a/misc/tune2fs.8.in +++ b/misc/tune2fs.8.in @@ -177,42 +177,6 @@ Reset the MMP block (if any) back to the clean state. Use only if absolutely certain the device is not currently mounted or being fscked, or major file system corruption can result. Needs '-f'. .TP -.BI mmp_update_interval= interval -Adjust the initial MMP update interval to -.I interval -seconds. Specifying an -.I interval -of 0 means to use the default interval. The specified interval must -be less than 300 seconds. Requires that the -.B mmp -feature be enabled. -.TP -.BI stride= stride-size -Configure the file system for a RAID array with -.I stride-size -file system blocks. This is the number of blocks read or written to disk -before moving to next disk. This mostly affects placement of file system -metadata like bitmaps at -.BR mke2fs (2) -time to avoid placing them on a single disk, which can hurt the performance. -It may also be used by block allocator. -.TP -.BI stripe_width= stripe-width -Configure the file system for a RAID array with -.I stripe-width -file system blocks per stripe. This is typically be stride-size * N, where -N is the number of data disks in the RAID (e.g. RAID 5 N+1, RAID 6 N+2). -This allows the block allocator to prevent read-modify-write of the -parity in a RAID stripe if possible when the data is written. -.TP -.BI hash_alg= hash-alg -Set the default hash algorithm used for file systems with hashed b-tree -directories. Valid algorithms accepted are: -.IR legacy , -.IR half_md4 , -and -.IR tea . -.TP .BI encoding= encoding-name Enable the .I casefold @@ -237,6 +201,28 @@ In the default configuration, the .I strict flag is disabled. .TP +.B force_fsck +Set a flag in the file system superblock indicating that errors have been found. +This will force fsck to run at the next mount. +.TP +.BI hash_alg= hash-alg +Set the default hash algorithm used for file systems with hashed b-tree +directories. Valid algorithms accepted are: +.IR legacy , +.IR half_md4 , +and +.IR tea . +.TP +.BI mmp_update_interval= interval +Adjust the initial MMP update interval to +.I interval +seconds. Specifying an +.I interval +of 0 means to use the default interval. The specified interval must +be less than 300 seconds. Requires that the +.B mmp +feature be enabled. +.TP .BI mount_opts= mount_option_string Set a set of default mount options which will be used when the file system is mounted. Unlike the bitmask-based default mount options which @@ -262,9 +248,23 @@ Set size of the file for tracking unlinked but still open inodes and inodes with truncate in progress. Larger file allows for better scalability, reserving a few blocks per cpu is ideal. .TP -.B force_fsck -Set a flag in the file system superblock indicating that errors have been found. -This will force fsck to run at the next mount. +.BI stride= stride-size +Configure the file system for a RAID array with +.I stride-size +file system blocks. This is the number of blocks read or written to disk +before moving to next disk. This mostly affects placement of file system +metadata like bitmaps at +.BR mke2fs (2) +time to avoid placing them on a single disk, which can hurt the performance. +It may also be used by block allocator. +.TP +.BI stripe_width= stripe-width +Configure the file system for a RAID array with +.I stripe-width +file system blocks per stripe. This is typically be stride-size * N, where +N is the number of data disks in the RAID (e.g. RAID 5 N+1, RAID 6 N+2). +This allows the block allocator to prevent read-modify-write of the +parity in a RAID stripe if possible when the data is written. .TP .B test_fs Set a flag in the file system superblock indicating that it may be @@ -371,43 +371,6 @@ Override the default ext3 journal parameters. Journal options are comma separated, and may take an argument using the equals ('=') sign. The following journal options are supported: .RS 1.2i -.TP -.BI size= journal-size -Create a journal stored in the file system of size -.I journal-size -megabytes. The size of the journal must be at least 1024 file system blocks -(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.) -and may be no more than 10,240,000 file system blocks. -There must be enough free space in the file system to create a journal of -that size. -.TP -.BI fast_commit_size= fast-commit-size -Create an additional fast commit journal area of size -.I fast-commit-size -kilobytes. -This option is only valid if -.B fast_commit -feature is enabled -on the file system. If this option is not specified and if -.B fast_commit -feature is turned on, fast commit area size defaults to -.I journal-size -/ 64 megabytes. The total size of the journal with -.B fast_commit -feature set is -.I journal-size -+ ( -.I fast-commit-size -* 1024) megabytes. The total journal size may be no more than -10,240,000 file system blocks or half the total file system size -(whichever is smaller). -.TP -.BI location =journal-location -Specify the location of the journal. The argument -.I journal-location -can either be specified as a block number, or if the number has a units -suffix (e.g., 'M', 'G', etc.) interpret it as the offset from the -beginning of the file system. @JDEV@.TP @JDEV@.BI device= external-journal @JDEV@Attach the file system to the journal block device located on @@ -441,6 +404,43 @@ beginning of the file system. @JDEV@.B -L @JDEV@option of @JDEV@.BR tune2fs (8). +.TP +.BI fast_commit_size= fast-commit-size +Create an additional fast commit journal area of size +.I fast-commit-size +kilobytes. +This option is only valid if +.B fast_commit +feature is enabled +on the file system. If this option is not specified and if +.B fast_commit +feature is turned on, fast commit area size defaults to +.I journal-size +/ 64 megabytes. The total size of the journal with +.B fast_commit +feature set is +.I journal-size ++ ( +.I fast-commit-size +* 1024) megabytes. The total journal size may be no more than +10,240,000 file system blocks or half the total file system size +(whichever is smaller). +.TP +.BI location =journal-location +Specify the location of the journal. The argument +.I journal-location +can either be specified as a block number, or if the number has a units +suffix (e.g., 'M', 'G', etc.) interpret it as the offset from the +beginning of the file system. +.TP +.BI size= journal-size +Create a journal stored in the file system of size +.I journal-size +megabytes. The size of the journal must be at least 1024 file system blocks +(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.) +and may be no more than 10,240,000 file system blocks. +There must be enough free space in the file system to create a journal of +that size. .RE @JDEV@.IP @JDEV@Only one of the From 45f2c24dca18debb50e2f150e4f3130d22e8ff12 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 26 Nov 2024 00:42:14 -0500 Subject: [PATCH 13/25] tune2fs: update revision 0 file systems before changing the inode size Revsion 0 file systems only support the fixed 128 byte inode size. So before changing the inode size via tune2fs -I, we must first update the file system to revision 1. Addresses-Debian-Bug: #1086603 Signed-off-by: Theodore Ts'o --- misc/tune2fs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/misc/tune2fs.c b/misc/tune2fs.c index 49772d3ea..2548a7669 100644 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@ -2864,6 +2864,7 @@ static int resize_inode(ext2_filsys fs, unsigned long new_size) int new_ino_blks_per_grp; ext2fs_block_bitmap bmap; + ext2fs_update_dynamic_rev(fs); retval = ext2fs_read_inode_bitmap(fs); if (retval) { fputs(_("Failed to read inode bitmap\n"), stderr); From 3fffe9dd6be5a5ed77755cf23c267b4afd1e7651 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 27 Nov 2024 13:03:38 -0500 Subject: [PATCH 14/25] tune2fs: replace the -r option with -E revision= Revision 0 file systems are needed for compatibility with pre-1995 Linux kernels (older that version 1.2). Other for testing and computer science archoelogy, there are no valid reasons for using this feature. Revision 0 file systms do not support any file system extensions beyond what was present in Linux 1.0 kernels, and only support 128 byte inode sizes, which means that the file system will only support file dates after the Unix epoch in 2038. Users who use -r 0 are almost certainly doing so by mistake (for example, perhaps they meant -m 0 but they typed -r 0 instead). As a result they get a very badly cripped file system that won't support SELinux, post-2038 dates, on-line resizing, etc. So remove the -r option and replace it with the extended option "revision", to prevent users from falling into this trap. Addresses-Debian-Bug: #1086603 Signed-off-by: Theodore Ts'o --- misc/mke2fs.8.in | 17 +++----- misc/mke2fs.c | 110 +++++++++++++++++++++++++---------------------- 2 files changed, 65 insertions(+), 62 deletions(-) diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in index 53ad58b40..4ff564baa 100644 --- a/misc/mke2fs.8.in +++ b/misc/mke2fs.8.in @@ -74,10 +74,6 @@ mke2fs \- create an ext2/ext3/ext4 file system .B \-q ] [ -.B \-r -.I fs-revision-level -] -[ .B \-E .I extended-options ] @@ -405,6 +401,13 @@ to support a file system that has .I max-online-resize blocks. .TP +.BI revision= fs-revision +Specify the file system revision number. Revision 0 file systems +provide compatibility with pre-1.2 Linux kernels (dating from before +1995). This is only needed for testing or people who want to use +very early, historical Linux systems. The current default (supported +by all modern Linux systems) is revision 1. +.TP .BI root_owner [=uid:gid] Specify the numeric user and group ID of the root directory. If no UID:GID is specified, use the user and group ID of the user running \fBmke2fs\fR. @@ -720,12 +723,6 @@ the manual page Quiet execution. Useful if .B mke2fs is run in a script. -.TP -.BI \-r " revision" -Set the file system revision for the new file system. Note that 1.2 -kernels only support revision 0 file systems. The default is to -create revision 1 file systems. -.TP .B \-S Write superblock and group descriptors only. This is an extreme measure to be taken only in the very unlikely case that all of diff --git a/misc/mke2fs.c b/misc/mke2fs.c index 58ade9df6..170ec9bc3 100644 --- a/misc/mke2fs.c +++ b/misc/mke2fs.c @@ -836,10 +836,9 @@ static int set_os(struct ext2_super_block *sb, char *os) static void parse_extended_opts(struct ext2_super_block *param, const char *opts) { + unsigned long ulong; char *buf, *token, *next, *p, *arg, *badopt = 0; - int len; - int r_usage = 0; - int ret; + int len, ret, r_usage = 0; int encoding = -1; char *encoding_flags = NULL; @@ -865,8 +864,6 @@ static void parse_extended_opts(struct ext2_super_block *param, } if (strcmp(token, "desc-size") == 0 || strcmp(token, "desc_size") == 0) { - int desc_size; - if (!ext2fs_has_feature_64bit(&fs_param)) { fprintf(stderr, _("%s requires '-O 64bit'\n"), token); @@ -885,14 +882,14 @@ static void parse_extended_opts(struct ext2_super_block *param, badopt = token; continue; } - desc_size = strtoul(arg, &p, 0); - if (*p || (desc_size & (desc_size - 1))) { + ulong = strtoul(arg, &p, 0); + if (*p || (ulong & (ulong - 1))) { fprintf(stderr, _("Invalid desc_size: '%s'\n"), arg); r_usage++; continue; } - param->s_desc_size = desc_size; + param->s_desc_size = ulong; } else if (strcmp(token, "hash_seed") == 0) { if (!arg) { r_usage++; @@ -1044,6 +1041,24 @@ static void parse_extended_opts(struct ext2_super_block *param, param->s_reserved_gdt_blocks = rsv_gdb; } + } else if (!strcmp(token, "revision")) { + if (!arg) { + r_usage++; + badopt = token; + continue; + } + param->s_rev_level = strtoul(arg, &p, 0); + if (*p) { + com_err(program_name, 0, + _("bad revision level - %s"), arg); + exit(1); + } + if (param->s_rev_level > EXT2_MAX_SUPP_REV) { + com_err(program_name, EXT2_ET_REV_TOO_HIGH, + _("while trying to create revision %d"), + param->s_rev_level); + exit(1); + } } else if (!strcmp(token, "test_fs")) { param->s_flags |= EXT2_FLAGS_TEST_FILESYS; } else if (!strcmp(token, "lazy_itable_init")) { @@ -1177,6 +1192,7 @@ static void parse_extended_opts(struct ext2_super_block *param, "\ttest_fs\n" "\tdiscard\n" "\tnodiscard\n" + "\trevision=\n" "\tencoding=\n" "\tencoding_flags=\n" "\tquotatype=\n" @@ -1640,7 +1656,6 @@ static void PRS(int argc, char *argv[]) * Finally, we complain about fs_blocks_count > 2^32 on a non-64bit fs. */ blk64_t fs_blocks_count = 0; - int s_opt = -1, r_opt = -1; char *fs_features = 0; int fs_features_size = 0; int use_bsize; @@ -1917,22 +1932,16 @@ static void PRS(int argc, char *argv[]) quiet = 1; break; case 'r': - r_opt = strtoul(optarg, &tmp, 0); - if (*tmp) { - com_err(program_name, 0, - _("bad revision level - %s"), optarg); - exit(1); - } - if (r_opt > EXT2_MAX_SUPP_REV) { - com_err(program_name, EXT2_ET_REV_TOO_HIGH, - _("while trying to create revision %d"), r_opt); - exit(1); - } - fs_param.s_rev_level = r_opt; - break; - case 's': /* deprecated */ - s_opt = atoi(optarg); - break; + com_err(program_name, 0, + _("the -r option has been removed.\n\n" + "If you really need compatibility with pre-1995 Linux systems, use the\n" + "command-line option \"-E revision=0\".\n")); + exit(1); + case 's': + com_err(program_name, 0, + _("the -s option has been removed.\n\n" + "Use the -O option to set or clear the sparse_super feature.\n")); + exit(1); case 'S': super_only = 1; break; @@ -2191,7 +2200,6 @@ static void PRS(int argc, char *argv[]) ext2fs_clear_feature_csum_seed(&fs_param); if (tmp) free(tmp); - (void) ext2fs_free_mem(&fs_features); /* * If the user specified features incompatible with the Hurd, complain */ @@ -2329,33 +2337,8 @@ static void PRS(int argc, char *argv[]) print_str_list(fs_types); } - if (r_opt == EXT2_GOOD_OLD_REV && - (fs_param.s_feature_compat || fs_param.s_feature_incompat || - fs_param.s_feature_ro_compat)) { - fprintf(stderr, "%s", _("Filesystem features not supported " - "with revision 0 filesystems\n")); - exit(1); - } - - if (s_opt > 0) { - if (r_opt == EXT2_GOOD_OLD_REV) { - fprintf(stderr, "%s", - _("Sparse superblocks not supported " - "with revision 0 filesystems\n")); - exit(1); - } - ext2fs_set_feature_sparse_super(&fs_param); - } else if (s_opt == 0) - ext2fs_clear_feature_sparse_super(&fs_param); - - if (journal_size != 0) { - if (r_opt == EXT2_GOOD_OLD_REV) { - fprintf(stderr, "%s", _("Journals not supported with " - "revision 0 filesystems\n")); - exit(1); - } + if (journal_size != 0) ext2fs_set_feature_journal(&fs_param); - } /* Get reserved_ratio from profile if not specified on cmd line. */ if (reserved_ratio < 0.0) { @@ -2560,6 +2543,28 @@ static void PRS(int argc, char *argv[]) if (extended_opts) parse_extended_opts(&fs_param, extended_opts); + if (fs_param.s_rev_level == EXT2_GOOD_OLD_REV) { + if (fs_features) { + fprintf(stderr, "%s", + _("Filesystem features not supported " + "with revision 0 filesystems\n")); + exit(1); + } + if (journal_size != 0) { + fprintf(stderr, "%s", _("Journals not supported with " + "revision 0 filesystems\n")); + exit(1); + } + if (fs_param.s_inode_size > EXT2_GOOD_OLD_INODE_SIZE) { + fprintf(stderr, "%s", _("Inode size incompatible with " + "revision 0 filesystems\n")); + exit(1); + } + fs_param.s_feature_compat = fs_param.s_feature_ro_compat = + fs_param.s_feature_incompat = 0; + fs_param.s_default_mount_opts = 0; + } + if (explicit_fssize == 0 && offset > 0) { fs_blocks_count -= offset / EXT2_BLOCK_SIZE(&fs_param); ext2fs_blocks_count_set(&fs_param, fs_blocks_count); @@ -2761,6 +2766,7 @@ _("128-byte inodes cannot handle dates beyond 2038 and are deprecated\n")); free(fs_type); free(usage_types); + (void) ext2fs_free_mem(&fs_features); /* The isatty() test is so we don't break existing scripts */ flags = CREATE_FILE; From 9380814804790f659c6ccfb1eefb3f2d67cf3d56 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 27 Nov 2024 13:36:17 -0500 Subject: [PATCH 15/25] misc: clean up groff warnings in the mek2fs.8 man page Addresses-Debian-Bug: #1087898 Signed-off-by: Theodore Ts'o --- misc/tune2fs.8.in | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/misc/tune2fs.8.in b/misc/tune2fs.8.in index 970f8739a..c233494ed 100644 --- a/misc/tune2fs.8.in +++ b/misc/tune2fs.8.in @@ -98,7 +98,7 @@ device allows the system administrator to adjust various tunable file system parameters on Linux ext2, ext3, or ext4 file systems. The current values of these options can be displayed by using the -.B -l +.B \-l option to .BR tune2fs (8) program, or by using the @@ -175,7 +175,7 @@ The following extended options are supported: .B clear_mmp Reset the MMP block (if any) back to the clean state. Use only if absolutely certain the device is not currently mounted or being -fscked, or major file system corruption can result. Needs '-f'. +fscked, or major file system corruption can result. Needs '\-f'. .TP .BI encoding= encoding-name Enable the @@ -227,7 +227,7 @@ feature be enabled. Set a set of default mount options which will be used when the file system is mounted. Unlike the bitmask-based default mount options which can be specified with the -.B -o +.B \-o option, .I mount_option_string is an arbitrary string with a maximum length of 63 bytes, which is @@ -378,7 +378,7 @@ The following journal options are supported: @JDEV@The external @JDEV@journal must have been already created using the command @JDEV@.IP -@JDEV@.B mke2fs -O journal_dev +@JDEV@.B mke2fs \-O journal_dev @JDEV@.I external-journal @JDEV@.IP @JDEV@Note that @@ -401,7 +401,7 @@ The following journal options are supported: @JDEV@stored in the ext2 superblock at the start of the journal. Use @JDEV@.BR dumpe2fs (8) @JDEV@to display a journal device's volume label and UUID. See also the -@JDEV@.B -L +@JDEV@.B \-L @JDEV@option of @JDEV@.BR tune2fs (8). .TP @@ -437,7 +437,7 @@ beginning of the file system. Create a journal stored in the file system of size .I journal-size megabytes. The size of the journal must be at least 1024 file system blocks -(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.) +(i.e., 1\~MiB if using 1k blocks, 4\~MiB if using 4k blocks, etc.) and may be no more than 10,240,000 file system blocks. There must be enough free space in the file system to create a journal of that size. @@ -642,7 +642,6 @@ Setting the file system feature is equivalent to using the .B \-j option. .TP -.TP .B fast_commit Enable fast commit journaling feature to improve fsync latency. .TP @@ -655,7 +654,7 @@ currently only supports setting this file system feature. Support files larger than 2 terabytes in size. .TP .B large_file -File System can contain files that are greater than 2GB. +File System can contain files that are greater than 2\~GiB. .TP .B metadata_csum Store a checksum to protect the contents in each metadata block. @@ -727,7 +726,7 @@ will print a message requesting that the system administrator run if necessary. After setting the .B dir_index feature, -.B e2fsck -D +.B e2fsck \-D can be run to convert existing directories to the hashed B-tree format. Enabling certain file system features may prevent the file system from being mounted by kernels which do not support those features. In particular, the @@ -756,7 +755,7 @@ Sets/clears project quota inode in the superblock. .TP .BI \-T " time-last-checked" Set the time the file system was last checked using -.BR e2fsck . +.BR e2fsck . The time is interpreted using the current (local) timezone. This can be useful in scripts which use a Logical Volume Manager to make a consistent snapshot of a file system, and then check the file system From efd3c504a0f09dc400a7b70b472c4efec86dda24 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 27 Nov 2024 13:53:19 -0500 Subject: [PATCH 16/25] misc: clean up groff warnings in the ext4.5 man page Addresses-Debian-Bug: #1072866 Signed-off-by: Theodore Ts'o --- misc/ext4.5.in | 70 +++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/misc/ext4.5.in b/misc/ext4.5.in index 6fb67ebf8..cf73bdf04 100644 --- a/misc/ext4.5.in +++ b/misc/ext4.5.in @@ -190,7 +190,7 @@ the option to .BR mke2fs (8) or -.BR tune2fs(8) . +.BR tune2fs 8) . .TP .B large_dir .br @@ -456,7 +456,7 @@ program using the option to print out where the superblocks exist, supposing .B mke2fs is supplied with arguments that are consistent with the file system's layout -(e.g. blocksize, blocks per group, +(e.g., blocksize, blocks per group, .BR sparse_super , etc.). .IP @@ -517,7 +517,7 @@ ordered mode. .B data_err=abort Abort the journal if an error occurs in a file data buffer in ordered mode. .TP -.BR barrier=0 " / " barrier=1 " +.BR barrier=0 " / " barrier=1 This disables / enables the use of write barriers in the jbd code. barrier=0 disables, barrier=1 enables (default). This also requires an IO stack which can support barriers, and if jbd gets an error on a barrier write, it will disable @@ -689,7 +689,7 @@ This limits the size of the directories so that any attempt to expand them beyond the specified limit in kilobytes will cause an ENOSPC error. This is useful in memory-constrained environments, where a very large directory can cause severe performance problems or even provoke the Out Of Memory killer. (For -example, if there is only 512\ MB memory available, a 176\ MB directory may +example, if there is only 512\~MiB memory available, a 176\~MiB directory may seriously cramp the system's style.) .TP .B i_version @@ -713,27 +713,27 @@ attributes on Linux systems using the .BR chattr (1) utility: .sp -.BR a " - append only" +.BR a " \- append only" .sp -.BR A " - no atime updates" +.BR A " \- no atime updates" .sp -.BR d " - no dump" +.BR d " \- no dump" .sp -.BR D " - synchronous directory updates" +.BR D " \- synchronous directory updates" .sp -.BR i " - immutable" +.BR i " \- immutable" .sp -.BR S " - synchronous updates" +.BR S " \- synchronous updates" .sp -.BR u " - undeletable" +.BR u " \- undeletable" .sp In addition, the ext3 and ext4 file systems support the following flag: .sp -.BR j " - data journaling" +.BR j " \- data journaling" .sp Finally, the ext4 file system also supports the following flag: .sp -.BR e " - extents format" +.BR e " \- extents format" .sp For descriptions of these attribute flags, please refer to the .BR chattr (1) @@ -747,49 +747,49 @@ feature may still be considered in an experimental state. Finally, note that some distributions may have backported features into older kernels; in particular the kernel versions in certain "enterprise distributions" can be extremely misleading. -.IP "\fBfiletype\fR" 2in +.IP "\fBfiletype\fR" 2i ext2, 2.2.0 -.IP "\fBsparse_super\fR" 2in +.IP "\fBsparse_super\fR" 2i ext2, 2.2.0 -.IP "\fBlarge_file\fR" 2in +.IP "\fBlarge_file\fR" 2i ext2, 2.2.0 -.IP "\fBhas_journal\fR" 2in +.IP "\fBhas_journal\fR" 2i ext3, 2.4.15 -.IP "\fBext_attr\fR" 2in +.IP "\fBext_attr\fR" 2i ext2/ext3, 2.6.0 -.IP "\fBdir_index\fR" 2in +.IP "\fBdir_index\fR" 2i ext3, 2.6.0 -.IP "\fBresize_inode\fR" 2in +.IP "\fBresize_inode\fR" 2i ext3, 2.6.10 (online resizing) -.IP "\fB64bit\fR" 2in +.IP "\fB64bit\fR" 2i ext4, 2.6.28 -.IP "\fBdir_nlink\fR" 2in +.IP "\fBdir_nlink\fR" 2i ext4, 2.6.28 -.IP "\fBextent\fR" 2in +.IP "\fBextent\fR" 2i ext4, 2.6.28 -.IP "\fBextra_isize\fR" 2in +.IP "\fBextra_isize\fR" 2i ext4, 2.6.28 -.IP "\fBflex_bg\fR" 2in +.IP "\fBflex_bg\fR" 2i ext4, 2.6.28 -.IP "\fBhuge_file\fR" 2in +.IP "\fBhuge_file\fR" 2i ext4, 2.6.28 -.IP "\fBmeta_bg\fR" 2in +.IP "\fBmeta_bg\fR" 2i ext4, 2.6.28 -.IP "\fBuninit_bg\fR" 2in +.IP "\fBuninit_bg\fR" 2i ext4, 2.6.28 -.IP "\fBmmp\fR" 2in +.IP "\fBmmp\fR" 2i ext4, 3.0 -.IP "\fBbigalloc\fR" 2in +.IP "\fBbigalloc\fR" 2i ext4, 3.2 -.IP "\fBquota\fR" 2in +.IP "\fBquota\fR" 2i ext4, 3.6 -.IP "\fBinline_data\fR" 2in +.IP "\fBinline_data\fR" 2i ext4, 3.8 -.IP "\fBsparse_super2\fR" 2in +.IP "\fBsparse_super2\fR" 2i ext4, 3.16 -.IP "\fBmetadata_csum\fR" 2in +.IP "\fBmetadata_csum\fR" 2i ext4, 3.18 -.IP "\fBencrypt\fR" 2in +.IP "\fBencrypt\fR" 2i ext4, 4.1 .IP "\fBmetadata_csum_seed\fR" 2i ext4, 4.4 From 7cc8a5b440f1c22d94a34f7b4a1b003ca8a9fa75 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 27 Nov 2024 19:28:34 -0500 Subject: [PATCH 17/25] misc: clean up groff warnings in the e2image.8 man page Addresses-Debian-Bug: #1082787 Signed-off-by: Theodore Ts'o --- misc/e2image.8.in | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/misc/e2image.8.in b/misc/e2image.8.in index 90ea0c279..384ef3023 100644 --- a/misc/e2image.8.in +++ b/misc/e2image.8.in @@ -55,7 +55,7 @@ catastrophically corrupted file systems. It is a very good idea to create image files for all file systems on a system and save the partition layout (which can be generated using the .B fdisk \-l -command) at regular intervals --- at boot time, and/or every week or so. +command) at regular intervals \(em at boot time, and/or every week or so. The image file should be stored on some file system other than the file system whose data it contains, to ensure that this data is accessible in the case where the file system has been badly damaged. @@ -127,7 +127,7 @@ some cases. This option forces e2fsck to only try locating the superblock with a particular blocksize. If the superblock is not found, e2image will terminate with a fatal error. .TP -.BI \-c +.B \-c Compare each block to be copied from the source .I device to the corresponding block in the target @@ -216,7 +216,7 @@ so that .BR dumpe2fs (8), .BR e2fsck (8), .BR losetup (8), -etc. and can be run directly on the raw image file. In order to minimize +etc. can be run directly on the raw image file. In order to minimize the amount of disk space consumed by the raw image file, it is created as a sparse file. (Beware of copying or compressing/decompressing this file with utilities that don't understand @@ -230,7 +230,6 @@ recommended command is as follows (replace .B hda1 with the appropriate device for your system): .PP -.br \fBe2image \-r /dev/hda1 \- | bzip2 > hda1.e2i.bz2\fR .PP This will only send the metadata information, without any data blocks. @@ -260,10 +259,9 @@ e2fsprogs, use following commands (replace .B hda1 with the appropriate device for your system): .PP +\& \fBe2image \-Q /dev/hda1 hda1.qcow2\fR .br -\ \fBe2image \-Q /dev/hda1 hda1.qcow2\fR -.br -\ \fBbzip2 -z hda1.qcow2\fR +\& \fBbzip2 -z hda1.qcow2\fR .PP This will only send the metadata information, without any data blocks. As described for @@ -280,8 +278,7 @@ such as for example .PP You can convert a .qcow2 image into a raw image with: .PP -.br -\ \fBe2image \-r hda1.qcow2 hda1.raw\fR +\& \fBe2image \-r hda1.qcow2 hda1.raw\fR .br .PP This can be useful to write a QCOW2 image containing all data to a @@ -305,15 +302,13 @@ For example, if you have a image of a whole hard drive that contains an ext2 fs in a partition starting at 1 MiB, you can clone that image to a block device with: .PP -.br -\ \fBe2image \-aro 1048576 img /dev/sda1\fR +\& \fBe2image \-aro 1048576 img /dev/sda1\fR .br .PP Or you can clone a file system from a block device into an image file, leaving room in the first MiB for a partition table with: .PP -.br -\ \fBe2image -arO 1048576 /dev/sda1 img\fR +\& \fBe2image -arO 1048576 /dev/sda1 img\fR .br .PP If you specify at least one offset, and only one file, an in-place From 540e4ca3a4eb92d9831d85ad5bdddca7f7f9d704 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 27 Nov 2024 20:16:29 -0500 Subject: [PATCH 18/25] debugfs: clean up groff warnings in the debugfs.8 man page Addresses-Debian-Bug: #1086892 Signed-off-by: Theodore Ts'o --- debugfs/debugfs.8.in | 139 ++++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 69 deletions(-) diff --git a/debugfs/debugfs.8.in b/debugfs/debugfs.8.in index 7cf5c1659..2066c0f1d 100644 --- a/debugfs/debugfs.8.in +++ b/debugfs/debugfs.8.in @@ -76,7 +76,7 @@ commands will not function properly. no safety checks are in place, and .B debugfs may fail in interesting ways if commands such as -.IR ls ", " dump ", " +.IR ls ", " dump , etc. are tried without specifying the .I data_source_device using the @@ -85,7 +85,7 @@ option. .B debugfs is a debugging tool. It has rough edges! .TP -.I -d data_source_device +.I \-d data_source_device Used with the .I \-i option, specifies that @@ -93,24 +93,24 @@ option, specifies that should be used when reading blocks not found in the ext2 image file. This includes data, directory, and indirect blocks. .TP -.I -b blocksize +.I \-b blocksize Forces the use of the given block size (in bytes) for the file system, rather than detecting the correct block size automatically. (This option is rarely needed; it is used primarily when the file system is extremely badly damaged/corrupted.) .TP -.I -s superblock +.I \-s superblock Causes the file system superblock to be read from the given block number, instead of using the primary superblock (located at an offset of 1024 bytes from the beginning of the file system). If you specify the -.I -s +.I \-s option, you must also provide the blocksize of the file system via the -.I -b +.I \-b option. (This option is rarely needed; it is used primarily when the file system is extremely badly damaged/corrupted.) .TP -.I -f cmd_file +.I \-f cmd_file Causes .B debugfs to read in commands from @@ -119,7 +119,7 @@ and execute them. When .B debugfs is finished executing those commands, it will exit. .TP -.I -D +.I \-D Causes .B debugfs to open the device using Direct I/O, bypassing the buffer cache. Note @@ -133,14 +133,16 @@ to execute the single command .IR request , and then exit. .TP -.I -V +.I \-V print the version number of .B debugfs and exit. .TP .BI \-z " undo_file" Before overwriting a file system block, write the old contents of the block to -an undo file. This undo file can be used with e2undo(8) to restore the old +an undo file. This undo file can be used with +.BR e2undo (8) +to restore the old contents of the file system should something go wrong. If the empty string is passed as the undo_file argument, the undo file will be written to a file named debugfs-\fIdevice\fR.e2undo in the directory specified via the @@ -184,7 +186,7 @@ Print the blocks used by the inode .I filespec to stdout. .TP -.BI bmap " [ -a ] filespec logical_block [physical_block]" +.BI bmap " [ \-a ] filespec logical_block [physical_block]" Print or set the physical block number corresponding to the logical block number .I logical_block in the inode @@ -193,7 +195,7 @@ If the .I \-a flag is specified, try to allocate a block if necessary. .TP -.BI block_dump " '[ -x ] [-f filespec] block_num" +.BI block_dump " '[ \-x ] [\-f filespec] block_num" Dump the file system block given by .I block_num in hex and ASCII format to the console. If the @@ -219,9 +221,9 @@ Change the current working directory to Change the root directory to be the directory .IR filespec . .TP -.BI close " [-a]" +.BI close " [\-a]" Close the currently open file system. If the -.I -a +.I \-a option is specified, write out any changes to the superblock and block group descriptors to all of the backup superblocks, not just to the master superblock. @@ -242,13 +244,13 @@ Search the directory for .IR filename . .TP -.BI dirty " [-clean]" +.BI dirty " [\-clean]" Mark the file system as dirty, so that the superblocks will be written on exit. Additionally, clear the superblock's valid flag, or set it if .I -clean is specified. .TP -.BI dump " [-p] filespec out_file" +.BI dump " [\-p] filespec out_file" Dump the contents of the inode .I filespec to the output file @@ -268,13 +270,13 @@ number, otherwise use the .B s_mmp_block field in the superblock to locate and use the existing MMP block. .TP -.BI dx_hash " [-cv] [-h hash_alg] [-s hash_seed] filename" +.BI dx_hash " [\-cv] [\-h hash_alg] [\-s hash_seed] filename" Calculate the directory hash of .IR filename . The -.I -c +.I \-c option will casefold the filename before calculating the hash. The -.I -v +.I \-v option will make the .B dx_hash command more verbose and print the hash algorithm and hash seed to @@ -282,19 +284,19 @@ calculate the hash. If a file system is open, use the hash_seed and default hash_algorithm used by the file system, although these can be overridden by the -.I -h +.I \-h and -.I -s +.I \-s options. The hash algorithm specified with -.I -h +.I \-h may be .BR legacy , " half_md4" ", or " tea . The hash seed specified with -.I -s +.I \-s must be in UUID format. .TP -.BI dump_extents " [-n] [-l] filespec" +.BI dump_extents " [\-n] [\-l] filespec" Dump the extent tree of the inode .IR filespec . The @@ -302,7 +304,7 @@ The flag will cause .B dump_extents to only display the interior nodes in the extent tree. The -.I -l +.I \-l flag will cause .B dump_extents to only display the leaf nodes in the extent tree. @@ -316,19 +318,19 @@ corruption in the file system.) .B dump_unused Dump unused blocks which contain non-null bytes. .TP -.BI ea_get " [-f outfile]|[-xVC] [-r] filespec attr_name" +.BI ea_get " [\-f outfile]|[\-xVC] [\-r] filespec attr_name" Retrieve the value of the extended attribute .I attr_name in the file .I filespec and write it either to stdout or to \fIoutfile\fR. .TP -.BI ea_list " filespec +.BI ea_list " filespec" List the extended attributes associated with the file .I filespec to standard output. .TP -.BI ea_set " [-f infile] [-r] filespec attr_name attr_value +.BI ea_set " [\-f infile] [\-r] filespec attr_name attr_value" Set the value of the extended attribute .I attr_name in the file @@ -337,7 +339,7 @@ to the string value .I attr_value or read it from \fIinfile\fR. .TP -.BI ea_rm " filespec attr_names... +.BI ea_rm " filespec attr_names..." Remove the extended attribute .I attr_name from the file \fIfilespec\fR. @@ -346,35 +348,35 @@ from the file \fIfilespec\fR. Expand the directory .IR filespec . .TP -.BI fallocate " filespec start_block [end_block] +.BI fallocate " filespec start_block [end_block]" Allocate and map uninitialized blocks into \fIfilespec\fR between logical block \fIstart_block\fR and \fIend_block\fR, inclusive. If \fIend_block\fR is not supplied, this function maps until it runs out of free disk blocks or the maximum file size is reached. Existing mappings are left alone. .TP -.BI feature " [fs_feature] [-fs_feature] ..." +.BI feature " [fs_feature] [\-fs_feature] ..." Set or clear various file system features in the superblock. After setting or clearing any file system features that were requested, print the current state of the file system feature set. .TP -.BI filefrag " [-dvr] filespec" +.BI filefrag " [\-dvr] filespec" Print the number of contiguous extents in .IR filespec . If .I filespec is a directory and the -.I -d +.I \-d option is not specified, .I filefrag will print the number of contiguous extents for each file in the directory. The -.I -v +.I \-v option will cause .I filefrag print a tabular listing of the contiguous extents in the file. The -.I -r +.I \-r option will cause .I filefrag to do a recursive listing of the directory. @@ -411,7 +413,7 @@ blocks starting at block number .I block will be marked as not allocated. .TP -.BI freefrag " [-c chunk_kb]" +.BI freefrag " [\-c chunk_kb]" Report free space fragmentation on the currently open file system. If the .I \-c @@ -426,7 +428,7 @@ Free the inode specified by .IR filespec . If .I num -is specified, also clear num-1 inodes after the specified inode. +is specified, also clear num\-1 inodes after the specified inode. .TP .BI get_quota " quota_type id" Display quota information for given quota type (user, group, or project) and ID. @@ -444,7 +446,7 @@ 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 " [-b]|[-e]|[-x] filespec" +.BI inode_dump " [\-b]|[\-e]|[\-x] filespec" Print the contents of the inode data structure in hex and ASCII format. The .I \-b @@ -475,25 +477,25 @@ to do this, use the program. This is just a call to the low-level library, which sets up the superblock and block descriptors. .TP -.BI journal_close +.B journal_close Close the open journal. .TP -.BI journal_open " [-c] [-v ver] [-f ext_jnl] +.BI journal_open " [\-c] [\-v ver] [\-f ext_jnl]" Opens the journal for reading and writing. Journal checksumming can -be enabled by supplying \fI-c\fR; checksum formats 2 and 3 can be -selected with the \fI-v\fR option. An external journal can be loaded +be enabled by supplying \fI\-c\fR; checksum formats 2 and 3 can be +selected with the \fI\-v\fR option. An external journal can be loaded from \fIext_jnl\fR. .TP -.BI journal_run +.B journal_run Replay all transactions in the open journal. .TP -.BI journal_write " [-b blocks] [-r revoke] [-c] file +.BI journal_write " [\-b blocks] [\-r revoke] [\-c] file" Write a transaction to the open journal. The list of blocks to write should be supplied as a comma-separated list in \fIblocks\fR; the blocks themselves should be readable from \fIfile\fR. A list of blocks to revoke can be supplied as a comma-separated list in \fIrevoke\fR. By default, a commit record is written at the end; the -\fI-c\fR switch writes an uncommitted transaction. +\fI\-c\fR switch writes an uncommitted transaction. .TP .BI kill_file " filespec" Deallocate the inode @@ -520,7 +522,7 @@ which is a hard link to .IR filespec . Note this does not adjust the inode reference counts. .TP -.BI logdump " [-acsOS] [-b block] [-n num_trans ] [-i filespec] [-f journal_file] [output_file]" +.BI logdump " [\-acsOS] [\-b block] [\-n num_trans ] [\-i filespec] [\-f journal_file] [output_file]" Dump the contents of the ext3 journal. By default, dump the journal inode as specified in the superblock. However, this can be overridden with the .I \-i @@ -573,7 +575,7 @@ Instead, it will stop only when the entire log is printed or after .I num_trans transactions. .TP -.BI ls " [-l] [-c] [-d] [-p] [-r] filespec" +.BI ls " [\-l] [\-c] [\-d] [\-p] [\-r] filespec" Print a listing of the files in the directory .IR filespec . The @@ -622,22 +624,22 @@ and .I minor device numbers must be specified. .TP -.BI ncheck " [-c] inode_num ..." +.BI ncheck " [\-c] inode_num ..." Take the requested list of inode numbers, and print a listing of pathnames to those inodes. The .I -c flag will enable checking the file type information in the directory entry to make sure it matches the inode's type. .TP -.BI open " [-weficD] [-b blocksize] [-d image_filename] [-s superblock] [-z undo_file] device" +.BI open " [\-weficD] [\-b blocksize] [\-d image_filename] [\-s superblock] [\-z undo_file] device" Open a file system for editing. The -.I -f +.I \-f flag forces the file system to be opened even if there are some unknown or incompatible file system features which would normally prevent the file system from being opened. The -.I -e +.I \-e flag causes the file system to be opened in exclusive mode. The -.IR -b ", " -c ", " -d ", " -i ", " -s ", " -w ", and " -D +.IR \-b ", " \-c ", " \-d ", " \-i ", " \-s ", " \-w ", and " \-D options behave the same as the command-line options to .BR debugfs . .TP @@ -680,7 +682,6 @@ If this causes the inode pointed to by .I pathname to have no other references, deallocate the file. This command functions as the unlink() system call. -.I .TP .BI rmdir " filespec" Remove the directory @@ -717,7 +718,7 @@ Mark inode .I filespec as in use in the inode bitmap. If .I num -is specified, also set num-1 inodes after the specified inode. +is specified, also set num\-1 inodes after the specified inode. .TP .BI set_inode_field " filespec field value" Modify the inode specified by @@ -725,10 +726,10 @@ Modify the inode specified by so that the inode field .I field has value -.I value. +.IR value . The list of valid inode fields which can be set via this command can be displayed by using the command: -.B set_inode_field -l +.B set_inode_field \-l Also available as .BR sif . .TP @@ -736,10 +737,10 @@ Also available as Modify the multiple-mount protection (MMP) data so that the MMP field .I field has value -.I value. +.IR value . The list of valid MMP fields which can be set via this command can be displayed by using the command: -.B set_mmp_value -l +.B set_mmp_value \-l Also available as .BR smmp . .TP @@ -747,10 +748,10 @@ Also available as Set the superblock field .I field to -.I value. +.IR value . The list of valid superblock fields which can be set via this command can be displayed by using the command: -.B set_super_value -l +.B set_super_value \-l Also available as .BR ssv . .TP @@ -759,9 +760,9 @@ Display .B debugfs parameters such as information about currently opened file system. .TP -.BI show_super_stats " [-h]" +.BI show_super_stats " [\-h]" List the contents of the super block and the block group descriptors. If the -.I -h +.I \-h flag is given, only print out the superblock contents. Also available as .BR stats . .TP @@ -822,34 +823,34 @@ Copy the contents of into a newly-created file in the file system named .IR out_file . .TP -.BI zap_block " [-f filespec] [-o offset] [-l length] [-p pattern] block_num" +.BI zap_block " [\-f filespec] [\-o offset] [\-l length] [\-p pattern] block_num" Overwrite the block specified by .I block_num with zero (NUL) bytes, or if -.I -p +.I \-p is given use the byte specified by .IR pattern . If -.I -f +.I \-f is given then .I block_num is relative to the start of the file given by .IR filespec . The -.I -o +.I \-o and -.I -l +.I \-l options limit the range of bytes to zap to the specified .I offset and .I length relative to the start of the block. .TP -.BI zap_block " [-f filespec] [-b bit] block_num" +.BI zap_block " [\-f filespec] [\-b bit] block_num" Bit-flip portions of the physical .IR block_num . If -.I -f +.I \-f is given, then .I block_num is a logical block relative to the start of From c94c00eb67df9d29aee6f9fa599586d01bd84192 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 27 Nov 2024 22:34:57 -0500 Subject: [PATCH 19/25] badblocks: avoid an error when -n or -w is specified twice Fix a bug where if the user specifies the -n or -w command-line option twice, badblocks will issue a misleading (and incorrect) error message. Addresses-Debian-Bug: #1087341 Signed-off-by: Theodore Ts'o --- misc/badblocks.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/badblocks.c b/misc/badblocks.c index 2b5ff6d80..2fc1b0dfe 100644 --- a/misc/badblocks.c +++ b/misc/badblocks.c @@ -1119,13 +1119,13 @@ int main (int argc, char ** argv) v_flag++; break; case 'w': - if (w_flag) + if (w_flag && w_flag != 1) exclusive_usage(); test_func = test_rw; w_flag = 1; break; case 'n': - if (w_flag) + if (w_flag && w_flag != 2) exclusive_usage(); test_func = test_nd; w_flag = 2; From 704062323ba96d8c9c21adb812b8e5dae3dc1be3 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 27 Nov 2024 22:37:52 -0500 Subject: [PATCH 20/25] ext4.5, tune2fs.8: add documentation for the orphan_file feature Add documentation for the orphan_file feature to the ext4(5) and tune2fs(8) man pages. Addresses-Debian-Bug: #1073062 Signed-off-by: Theodore Ts'o --- misc/ext4.5.in | 7 +++++++ misc/tune2fs.8.in | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/misc/ext4.5.in b/misc/ext4.5.in index cf73bdf04..e909fd179 100644 --- a/misc/ext4.5.in +++ b/misc/ext4.5.in @@ -245,6 +245,13 @@ This ext4 feature provides multiple mount protection (MMP). MMP helps to protect the file system from being multiply mounted and is useful in shared storage environments. .TP +.B orphan_file +.br +This ext4 feature fixes a potential scalability bottleneck for workloads +that are doing a large number of truncate or file extensions in +parallel. It is supported by Linux kernels starting version 5.15, and +by e2fsprogs starting with version 1.47.0. +.TP .B project .br This ext4 feature provides project quota support. With this feature, diff --git a/misc/tune2fs.8.in b/misc/tune2fs.8.in index c233494ed..ff0bd5115 100644 --- a/misc/tune2fs.8.in +++ b/misc/tune2fs.8.in @@ -669,6 +669,11 @@ feature while it is mounted. .B mmp Enable or disable multiple mount protection (MMP) feature. .TP +.B orphan_file +Store the list of orphan inodes in multiple blocks instead of a single +linked-list to avoid potential scalability bottlenecks for workloads +that perform a large number of file truncations or extensions in parallel. +.TP .B project Enable project ID tracking. This is used for project quota tracking. .TP From 49fd04d77b3244c6c6990be41142168eef373aef Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Fri, 22 Nov 2024 12:36:32 +0000 Subject: [PATCH 21/25] libext2fs: fix -std=c23 build failure gcc-15 switched to -std=c23 by default: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=55e3bd376b2214e200fa76d12b67ff259b06c212 As a result `e2fsprogs` fails the build so only typedef int bool for __STDC_VERSION__ <= 201710L (C17) ../../../lib/ext2fs/tdb.c:113:13: error: two or more data types in declaration specifiers ../../../lib/ext2fs/tdb.c:113:1: warning: useless type name in empty declaration 113 | typedef int bool; | ^~~~~~~ https://github.com/tytso/e2fsprogs/issues/202 Signed-off-by: Rudi Heitbaum Link: https://lore.kernel.org/r/Z0B60JhdvT9bpSQ6@6f91903e89da Signed-off-by: Theodore Ts'o --- lib/ext2fs/tdb.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/ext2fs/tdb.c b/lib/ext2fs/tdb.c index b07b2917f..98dc95d85 100644 --- a/lib/ext2fs/tdb.c +++ b/lib/ext2fs/tdb.c @@ -110,7 +110,9 @@ static char *rep_strdup(const char *s) #endif #endif +#if defined __STDC__ && defined __STDC_VERSION__ && __STDC_VERSION__ <= 201710L typedef int bool; +#endif #include "tdb.h" From 757a712c1238c7ed7852d662f337f5620db8a75e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= Date: Thu, 28 Nov 2024 12:48:58 -0500 Subject: [PATCH 22/25] debian: provide fuseext2 to replace src:fuse-umfuse-ext2 The fuse-umfuse-ext2 packaghas been abandoned by upstream, and a follow-up fork at https://github.com/alperakcan/fuse-ext2 hasn't been updated in five years. Both of these versions also warn against mounting file systems read/write with fuse-ext2. As proposed on debian-devel, let's replace fuse-umfuse-ext2 with a compatibility shell script shipped with fuse2fs. Link: https://lists.debian.org/debian-devel/2024/10/msg00231.html Addresses-Debian-Bug: #1085590 Signed-off-by: Theodore Ts'o --- debian/control | 11 +++++++ debian/copyright | 40 +++++++++++++++++++++++++ debian/fuse-ext2 | 65 ++++++++++++++++++++++++++++++++++++++++ debian/fuse-ext2.1 | 67 ++++++++++++++++++++++++++++++++++++++++++ debian/fuse2fs.install | 3 ++ debian/fuse2fs.links | 7 +++++ 6 files changed, 193 insertions(+) create mode 100755 debian/fuse-ext2 create mode 100644 debian/fuse-ext2.1 create mode 100644 debian/fuse2fs.links diff --git a/debian/control b/debian/control index e641b3712..bc582cd8a 100644 --- a/debian/control +++ b/debian/control @@ -13,12 +13,23 @@ Package: fuse2fs Build-Profiles: Priority: optional Depends: ${shlibs:Depends}, ${misc:Depends} +Breaks: fuseext2 (<< 1.47.1-2~) +Replaces: fuseext2 (<< 1.47.1-2~) Architecture: linux-any kfreebsd-any Description: ext2 / ext3 / ext4 file system driver for FUSE fuse2fs is a FUSE file system client that supports reading and writing from devices or image files containing ext2, ext3, and ext4 file systems. +Package: fuseext2 +Build-Profiles: +Depends: fuse2fs (>= 1.47.1-2), ${misc:Depends} +Architecture: all +Priority: optional +Section: oldlibs +Description: transitional package + This is a transitional package. It can safely be removed. + Package: logsave Priority: optional Depends: ${shlibs:Depends}, ${misc:Depends} diff --git a/debian/copyright b/debian/copyright index 77bd5ea19..604ed9e7e 100644 --- a/debian/copyright +++ b/debian/copyright @@ -21,6 +21,15 @@ Copyright: 2003-2007 Theodore Ts'o 1995-1996 Michael Nonweiler License: GPL-2 +Files: debian/fuse-ext2 +Copyright: 2008-2010 Alper Akcan + 2009-2010 Renzo Davoli +License: GPL-2+ + +Files: debian/fuse-ext2.1 +Copyright: 2024 наб +License: 0BSD + Files: lib/et/* lib/ss/* Copyright: 1987-1988 MIT Student Information Processing Board @@ -471,6 +480,37 @@ Comment: On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". +License: GPL-2+ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program (in the main directory of the fuse-ext2 + distribution in the file COPYING); if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. +Comment: + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + +License: 0BSD + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + . + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + License: LGPL-2 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as diff --git a/debian/fuse-ext2 b/debian/fuse-ext2 new file mode 100755 index 000000000..ebd3b8a5e --- /dev/null +++ b/debian/fuse-ext2 @@ -0,0 +1,65 @@ +#!/bin/sh +usage() { + printf 'usage: %s [-hv] [-o ro|force|allow_others[,...]]... device|image mountpoint\n\nUse fuse2fs instead.\n' "${0##*/}" + exit 9 +} + +args="$(getopt -o 'hvo:' --long 'help,verbose,options:' -n "${0##*/}" -s 'sh' -- "$@")" || exit +eval set -- "$args" + +original_options= +readonly= +force= +while :; do + case "$1" in + -o|--options) + original_options="$original_options,$2" + shift 2 + ;; + -h|--help) + usage + shift + ;; + -v|--verbose) + shift + ;; + --) + shift + break + ;; + esac +done + +[ $# -eq 2 ] || usage +device="$1" +mountpoint="$2" + +# let fuse2fs check $device + +options= +while [ -n "${original_options#,}" ]; do + original_options="${original_options#,}" + full="${original_options%%,*}" + original_options="${original_options#*,}," + case "${full%%=*}" in + "ro" ) readonly=y ;; # Read-only mount. + "rw" ) readonly= ;; # Read-write mount + "rw+" ) readonly=; force=y ;; # Read-write mount + "silent") ;; # keep silent + "force" ) force=y ;; # enable read/write + * ) options="$options,$full"; continue ;; + esac + [ "$full" = "${full%=*}" ] || { + printf '%s: %s: value given but not allowed\n' "${0##*/}" "$full" >&2 + exit 254 + } +done + +[ -z "$readonly" ] && [ -z "$force" ] && { + printf '%s: Mounting %s Read-Only. Use '\''force'\'' or '\''rw+'\'' options to enable Read-Write mode\n' "${0##*/}" "$device" >&2 + readonly=y +} + +[ -n "$readonly" ] && options="$options,ro" || options="$options,rw" + +exec /usr/bin/fuse2fs "$device" "$mountpoint" -o "${options#,}" diff --git a/debian/fuse-ext2.1 b/debian/fuse-ext2.1 new file mode 100644 index 000000000..b24ab56ea --- /dev/null +++ b/debian/fuse-ext2.1 @@ -0,0 +1,67 @@ +.\" SPDX-License-Identifier: 0BSD +.\" +.Dd October 24, 2024 +.Dt FUSE-EXT2 1 +.Os fuse2fs +. +.Sh NAME +.Nm fuse-ext2 +.Nd fuse2fs compatibility wrapper +.Sh SYNOPSIS +.Nm +.Op Fl hv +.Oo Fl o Cm ro Ns \&| Ns Cm force Ns \&| Ns Cm allow_others Ns Oo ,… Oc Oc Ns … +.Ar device Ns \&| Ns Ar image +.Ar mountpoint +. +.Sh DESCRIPTION +This wrapper provides the +.Nm +interface via +.Xr fuse2fs 1 , +which you should migrate to instead. +. +.Sh OPTIONS +.Bl -tag -compact -width ".Fl o , -options Ar option Ns Op ,…" +.It Fl h , -help +Show usage string. +. +.It Fl v , -verbose +Ignored. +. +.It Fl o , -options Ar option Ns Op ,… +.Xr mount.fuse3 8 +options, of which these are handled specially: +.Bl -tag -compact -offset 4n -width ".Cm silent" +.It Cm ro +Mount read-only. +. +.It Cm rw +Mount read-write +.Em if +.Cm force +also given. +This is the default. +. +.It Cm rw+ +Same as +.Fl o Cm rw , Ns Cm force +.It Cm silent +Ignored. +.It Cm force +If +.Cm rw , +mount read-write. +.El +all other +.Ar option Ns s +are forwarded to +.Nm fuse2fs +directly. +.Pp +If +.Cm rw +but not +.Cm force , +the mount is read-only and a warning is issued. +.El diff --git a/debian/fuse2fs.install b/debian/fuse2fs.install index 2ed4c3c06..5ff8792d7 100644 --- a/debian/fuse2fs.install +++ b/debian/fuse2fs.install @@ -1,2 +1,5 @@ /usr/bin/fuse2fs /usr/share/man/man1/fuse2fs.1 + +debian/fuse-ext2 /usr/bin/ +debian/fuse-ext2.1 /usr/share/man/man1/ diff --git a/debian/fuse2fs.links b/debian/fuse2fs.links new file mode 100644 index 000000000..71cb0b6ba --- /dev/null +++ b/debian/fuse2fs.links @@ -0,0 +1,7 @@ +/usr/bin/fuse-ext2 /usr/bin/fuseext2 +/usr/bin/fuse-ext2 /usr/sbin/mount.fuse-ext2 +/usr/sbin/mount.fuse-ext2 /usr/sbin/mount.fuseext2 + +/usr/share/man/man1/fuse-ext2.1 /usr/share/man/man1/fuseext2.1 +/usr/share/man/man1/fuse-ext2.1 /usr/share/man/man8/mount.fuse-ext2.8 +/usr/share/man/man8/mount.fuse-ext2.8 /usr/share/man/man8/mount.fuseext2.8 From 064b8da0a75d40a780b28ff4f8c9eadd9647134f Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 28 Nov 2024 13:21:20 -0500 Subject: [PATCH 23/25] tests/fuzz: fix memory leak from repeatedly calling add_error_table() Signed-off-by: Theodore Ts'o --- tests/fuzz/ext2fs_image_read_write_fuzzer.cc | 1 + tests/fuzz/ext2fs_read_bitmap_fuzzer.cc | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/fuzz/ext2fs_image_read_write_fuzzer.cc b/tests/fuzz/ext2fs_image_read_write_fuzzer.cc index 8aa0cb845..e6e0719f6 100644 --- a/tests/fuzz/ext2fs_image_read_write_fuzzer.cc +++ b/tests/fuzz/ext2fs_image_read_write_fuzzer.cc @@ -130,6 +130,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { ext2fs_close(fs); } close(fd); + remove_error_table(&et_ext2_error_table); return 0; } diff --git a/tests/fuzz/ext2fs_read_bitmap_fuzzer.cc b/tests/fuzz/ext2fs_read_bitmap_fuzzer.cc index fa3d7e7d2..9118837d2 100644 --- a/tests/fuzz/ext2fs_read_bitmap_fuzzer.cc +++ b/tests/fuzz/ext2fs_read_bitmap_fuzzer.cc @@ -103,6 +103,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { com_err(progname, retval, "while trying to close file system"); } close(fd); + remove_error_table(&et_ext2_error_table); return 0; } From 6ba18ef7bf4bec1f2fd738d52a42181baa6bafbf Mon Sep 17 00:00:00 2001 From: Johannes Schauer Marin Rodrigues Date: Tue, 27 Aug 2024 00:45:16 +0200 Subject: [PATCH 24/25] mke2fs: accept gnu.translator xattrs in tar files fed to mke2fs -d https://github.com/tytso/e2fsprogs/issues/192 https://github.com/tytso/e2fsprogs/pull/194 Signed-off-by: Theodore Ts'o --- misc/create_inode_libarchive.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/create_inode_libarchive.c b/misc/create_inode_libarchive.c index 8705eb168..ff697f4c8 100644 --- a/misc/create_inode_libarchive.c +++ b/misc/create_inode_libarchive.c @@ -442,7 +442,7 @@ static errcode_t set_inode_xattr_tar(ext2_filsys fs, ext2_ino_t ino, dl_archive_entry_xattr_reset(entry); while (dl_archive_entry_xattr_next(entry, &name, &value, &value_size) == ARCHIVE_OK) { - if (strcmp(name, "security.capability") != 0) + if (strcmp(name, "security.capability") != 0 && strcmp(name, "gnu.translator")) continue; retval = ext2fs_xattr_set(handle, name, value, value_size); From 2aa607543861caacd7ed86ddd2a7833c761372b1 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Fri, 29 Nov 2024 02:16:28 -0500 Subject: [PATCH 25/25] Update release notes, etc., for the 1.47.2 release Signed-off-by: Theodore Ts'o --- README | 2 +- debian/changelog | 32 + doc/RelNotes/v1.47.2.txt | 85 +++ doc/libext2fs.texinfo | 8 +- e2fsprogs.lsm | 8 +- e2fsprogs.spec | 2 +- po/e2fsprogs.pot | 1495 ++++++++++++++++++++------------------ version.h | 6 +- 8 files changed, 928 insertions(+), 710 deletions(-) create mode 100644 doc/RelNotes/v1.47.2.txt diff --git a/README b/README index 1bc05211f..8510c844d 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ - This is the new version (1.47.1) of the second extended file + This is the new version (1.47.2) of the second extended file system management programs. From time to time, I release new versions of e2fsprogs, to fix diff --git a/debian/changelog b/debian/changelog index 7d8ba53d5..c9bbbbb1d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,35 @@ +e2fsprogs (1.47.2~rc1-1) unstable; urgency=medium + + * New upstream version + * Remove the -r option from tune2fs and replace it with an extended + option since most users will never need to request a file system + suitable for pre-1995 1.2 version kernels and a typo will just end up + confusing the user and leaving them with a file system missing most + modern ext4 features, including no support for on-line resizing and no + support for post-2038 timestamps. Closes: #1086603) + * Add support for gnu.translator extended attrbitues in tar files fed to + mke2fs -d. + * Avoid a spurious failure in badblocks when -n or -w is specified + twice. (Closes: #1087341) + * Fix a bug which caused e2fsck to skip checking a file system with the + orphan_file feature if there are orphaned files which need to be + cleaned up. + * Fix a bug which caused tune2fs to corrupt a revision 0 file system + when changing the inode size by updating the revision to the current + standard revision supported by all Linux kernels since 1995. + * Fix fuse2fs --helpfull so that it displays the full help message. + * Allow resize2fs to perform an offline resize past the 256 TiB boundary + * Fix unused parameter warnings for packages which including ext2fs.h. + (Closes: #1082500) + * Provide fuseext2 to replace the debian package src:fuse-umfuse-ext2. + (Closes: #1085590) + * Clean up groff warnings in man pages. (Closes: #1086892, #1082787, + #1072866, #1087898) + * Document the orphan_file feature in the ext4(5) and tune2fs(8) man + pages. (Closes: #1073062) + + -- Theodore Y. Ts'o Thu, 28 Nov 2024 23:35:35 -0500 + e2fsprogs (1.47.1-1) unstable; urgency=medium * New upstream version diff --git a/doc/RelNotes/v1.47.2.txt b/doc/RelNotes/v1.47.2.txt new file mode 100644 index 000000000..84cd21640 --- /dev/null +++ b/doc/RelNotes/v1.47.2.txt @@ -0,0 +1,85 @@ +E2fsprogs 1.47.2 (November 28, 2024) 6ba18ef7bf4b +==================================== + +Updates/Fixes since v1.47.1: + +UI and Features +--------------- + +Drop the tune2fs -r option and replace it with -E revision=. +Revision 0 file systems are needed for compatibility with pre-1995 Linux +kernels (older that version 1.2). Most of the time, users shouldn't be +using the -r option and they can confuse themselves and end up creating +a file system that is missing most modern ext4 features, including no +online resizing, no support for post-2038 timestamps, etc. (Addresses +Debian Bug #1086603) + +Add support for gnu.translator extended attributes in tar files fed to +mke2fs -d. (Addresses Github issue +https://github.com/tytso/e2fsprogs/issues/192) + + +Fixes +----- + +Avoid a spurious failure in badblocks when -n or -w is specified twice. +(Addresses Debian Bug #1087341) + +Fix a bug where e2fsck could skip checking a file systems with the +orphan_file feature if there are orphaned files that need to be cleaned +up. (Addresses Red Hat Bugzilla 2318710, SuSE Bugzilla #1226043) + +Tune2fs will now upgrade a revision 0 file system to revision 1 before +trying to change the inode size. Otherwise, this could result in a +corrupted file system. + +Fix fuse2fs --helpfull so that it displays the full help message. + +Allow resize2fs to perform an offline resize past the 256 TiB boundary +(which the kernel could do as part of an online resize). + + + +Performance, Internal Implementation, Development Support etc. +-------------------------------------------------------------- + +Speed up tune2fs -g when the group is not changed by the command. + +Fix build failures on GCC 15 due to it switched to using -std=c23 by +default. (Addresses Github issue +https://github.com/tytso/e2fsprogs/issues/202) + +Fix build failure when linking fuse2fs with old (2.9.9) version of +libfuse2 on aarch64. This hack was needed to fix a regression caused by +another hacky workaround needed to work around a build failure on +mipsel64 thanks to glibc using different struct stat layouts depending +_FILE_OFFSET_BITS is set and this caused failures when dynamic linking +against libarchive on Debian's mipsel64. (Sigh.) + +Fix unused parameter warnings for packages which including ext2fs.h. +(Addresses Debian Bug #1082500) + +Fix bug where packages including ext2fs.h would get the 32-bit versions +of the timestamp routines even on 64-bit platforms due to a missing +SIZEOF_TIME_T autoconf definiton in public_config.h. + +Enable Continuous Integration testing in Debian's Salsa forge. + +Fix a memory leak in oss-fuzz test programs. + +Provide fuseext2 to replace the debian package src:fuse-umfuse-ext2. +(Addresses Debian Bug #1085590) + +Fix the f_badjour_encrypted test to write the error output from mke2fs +and debugfs to a log file so it doesn't mess up the "make check" output +and to make those error messages available in the case of test failure. + +Fix my_llseek() declaration when building against musl libc. + +Clean up groff warnings in man pages. (Addresses Debian Bugs #1086892, +#1082787, #1072866, #1087898) + +Document the orphan_file feature in the ext4(5) and tune2fs(8) man +pages. (Addresses Debian Bug #1073062) + +Various man page cleanups. diff --git a/doc/libext2fs.texinfo b/doc/libext2fs.texinfo index c9931daf8..4fd4ca60d 100644 --- a/doc/libext2fs.texinfo +++ b/doc/libext2fs.texinfo @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename libext2fs.info -@settitle The EXT2FS Library (version 1.47.1) +@settitle The EXT2FS Library (version 1.47.2) @synindex tp fn @comment %**end of header @@ -60,8 +60,8 @@ by the author. @title The EXT2FS Library @subtitle The EXT2FS Library -@subtitle Version 1.47.1 -@subtitle May 2024 +@subtitle Version 1.47.2 +@subtitle November 2024 @author by Theodore Ts'o @@ -101,7 +101,7 @@ by the Foundation. @top The EXT2FS Library -This manual documents the EXT2FS Library, version 1.47.1. +This manual documents the EXT2FS Library, version 1.47.2. @menu * Introduction to the EXT2FS Library:: diff --git a/e2fsprogs.lsm b/e2fsprogs.lsm index 645a3fec6..7ff87496e 100644 --- a/e2fsprogs.lsm +++ b/e2fsprogs.lsm @@ -1,15 +1,15 @@ Begin3 Title: EXT2 Filesystem utilities -Version: 1.47.1 -Entered-date: 2024-05-20 +Version: 1.47.2 +Entered-date: 2024-10-28 Description: The filesystem utilities for the EXT2, EXT3, and EXT4 filesystems, including e2fsck, mke2fs, dumpe2fs, and others. Keywords: utilities, filesystem, Ext2fs, ext3, ext4 Author: tytso@mit.edu (Theodore Tso) Maintained-by: tytso@mit.edu (Theodore Tso) Primary-site: ftp.kernel.org /pub/linux/kernel/people/tytso/e2fsprogs - 9704kB e2fsprogs-1.47.1.tar.gz - 1kB e2fsprogs-1.47.1.lsm + 9732kB e2fsprogs-1.47.2.tar.gz + 1kB e2fsprogs-1.47.2.lsm pAlternate-site: download.sourceforge.net /pub/sourceforge/e2fsprogs Platforms: linux 1.2.x/1.3.x/2.0.x/2.1.x/2.2.x/2.3.x/2.4.x/2.5.x/2.6.x/3.x/4.x/5.x/6.x Copying-policy: GPL-2/LGPL-2 diff --git a/e2fsprogs.spec b/e2fsprogs.spec index b11e55b6b..f502fce7d 100644 --- a/e2fsprogs.spec +++ b/e2fsprogs.spec @@ -5,7 +5,7 @@ Summary: Utilities for managing ext2/ext3/ext4 filesystems Name: e2fsprogs -Version: 1.47.1 +Version: 1.47.2 Release: 0 License: GPLv2 Group: System Environment/Base diff --git a/po/e2fsprogs.pot b/po/e2fsprogs.pot index 1a324df6b..174625f06 100644 --- a/po/e2fsprogs.pot +++ b/po/e2fsprogs.pot @@ -2,9 +2,9 @@ # Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, # 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, -# 2023 by Theodore Ts'o +# 2023, 2024 by Theodore Ts'o # This file is distributed under the same license as the e2fsprogs package. -# Theodore Ts'o , 2023. +# Theodore Ts'o , 2024. # #. The strings in e2fsck's problem.c can be very hard to translate, #. since the strings are expanded in two different ways. First of all, @@ -78,9 +78,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: e2fsprogs 1.47.0.95\n" +"Project-Id-Version: e2fsprogs 1.47.1.95\n" "Report-Msgid-Bugs-To: tytso@alum.mit.edu\n" -"POT-Creation-Date: 2024-04-24 13:22-0400\n" +"POT-Creation-Date: 2024-11-29 02:11-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -90,7 +90,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: e2fsck/badblocks.c:23 misc/mke2fs.c:223 +#: e2fsck/badblocks.c:23 misc/mke2fs.c:224 #, c-format msgid "Bad block %u out of range; ignored.\n" msgstr "" @@ -103,12 +103,12 @@ msgstr "" msgid "while reading the bad blocks inode" msgstr "" -#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1595 -#: e2fsck/unix.c:1710 misc/badblocks.c:1273 misc/badblocks.c:1281 +#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1599 +#: e2fsck/unix.c:1714 misc/badblocks.c:1273 misc/badblocks.c:1281 #: misc/badblocks.c:1295 misc/badblocks.c:1307 misc/dumpe2fs.c:438 -#: misc/dumpe2fs.c:704 misc/dumpe2fs.c:708 misc/e2image.c:1441 -#: misc/e2image.c:1641 misc/e2image.c:1662 misc/mke2fs.c:239 -#: misc/tune2fs.c:3043 misc/tune2fs.c:3232 resize/main.c:424 +#: misc/dumpe2fs.c:704 misc/dumpe2fs.c:708 misc/e2image.c:1447 +#: misc/e2image.c:1647 misc/e2image.c:1668 misc/mke2fs.c:240 +#: misc/tune2fs.c:3044 misc/tune2fs.c:3233 resize/main.c:422 #, c-format msgid "while trying to open %s" msgstr "" @@ -118,7 +118,7 @@ msgstr "" msgid "while trying popen '%s'" msgstr "" -#: e2fsck/badblocks.c:95 misc/mke2fs.c:246 +#: e2fsck/badblocks.c:95 misc/mke2fs.c:247 msgid "while reading in list of bad blocks from file" msgstr "" @@ -135,30 +135,35 @@ msgstr "" msgid "while freeing dir_info tdb file" msgstr "" -#: e2fsck/ehandler.c:55 +#: e2fsck/ehandler.c:56 #, c-format msgid "Error reading block %lu (%s) while %s. " msgstr "" -#: e2fsck/ehandler.c:58 +#: e2fsck/ehandler.c:59 #, c-format msgid "Error reading block %lu (%s). " msgstr "" -#: e2fsck/ehandler.c:66 e2fsck/ehandler.c:115 +#: e2fsck/ehandler.c:67 e2fsck/ehandler.c:121 msgid "Ignore error" msgstr "" -#: e2fsck/ehandler.c:67 +#: e2fsck/ehandler.c:68 msgid "Force rewrite" msgstr "" -#: e2fsck/ehandler.c:109 +#: e2fsck/ehandler.c:72 +#, c-format +msgid "Error rewriting block %lu (%s)\n" +msgstr "" + +#: e2fsck/ehandler.c:115 #, c-format msgid "Error writing block %lu (%s) while %s. " msgstr "" -#: e2fsck/ehandler.c:112 +#: e2fsck/ehandler.c:118 #, c-format msgid "Error writing block %lu (%s). " msgstr "" @@ -224,7 +229,7 @@ msgstr "" msgid "%s: incorrect fast commit blocks\n" msgstr "" -#: e2fsck/journal.c:1688 misc/fuse2fs.c:3857 +#: e2fsck/journal.c:1688 misc/fuse2fs.c:3872 #, c-format msgid "%s: recovering journal\n" msgstr "" @@ -500,85 +505,85 @@ msgstr "" msgid "while hashing entry with e_value_inum = %u" msgstr "" -#: e2fsck/pass1.c:774 e2fsck/pass2.c:1155 +#: e2fsck/pass1.c:817 e2fsck/pass2.c:1155 msgid "reading directory block" msgstr "" -#: e2fsck/pass1.c:1175 +#: e2fsck/pass1.c:1218 msgid "getting next inode from scan" msgstr "" -#: e2fsck/pass1.c:1228 +#: e2fsck/pass1.c:1271 msgid "in-use inode map" msgstr "" -#: e2fsck/pass1.c:1239 +#: e2fsck/pass1.c:1282 msgid "directory inode map" msgstr "" -#: e2fsck/pass1.c:1249 +#: e2fsck/pass1.c:1292 msgid "regular file inode map" msgstr "" -#: e2fsck/pass1.c:1258 misc/e2image.c:1290 +#: e2fsck/pass1.c:1301 misc/e2image.c:1296 msgid "in-use block map" msgstr "" -#: e2fsck/pass1.c:1267 +#: e2fsck/pass1.c:1310 msgid "metadata block map" msgstr "" -#: e2fsck/pass1.c:1278 +#: e2fsck/pass1.c:1321 msgid "inode casefold map" msgstr "" -#: e2fsck/pass1.c:1343 +#: e2fsck/pass1.c:1386 msgid "opening inode scan" msgstr "" -#: e2fsck/pass1.c:2139 +#: e2fsck/pass1.c:2193 msgid "Pass 1" msgstr "" -#: e2fsck/pass1.c:2200 +#: e2fsck/pass1.c:2254 #, c-format msgid "reading indirect blocks of inode %u" msgstr "" -#: e2fsck/pass1.c:2251 +#: e2fsck/pass1.c:2305 msgid "bad inode map" msgstr "" -#: e2fsck/pass1.c:2291 +#: e2fsck/pass1.c:2345 msgid "inode in bad block map" msgstr "" -#: e2fsck/pass1.c:2311 +#: e2fsck/pass1.c:2365 msgid "imagic inode map" msgstr "" -#: e2fsck/pass1.c:2342 +#: e2fsck/pass1.c:2396 msgid "multiply claimed block map" msgstr "" -#: e2fsck/pass1.c:2467 +#: e2fsck/pass1.c:2521 msgid "ext attr block map" msgstr "" -#: e2fsck/pass1.c:3768 +#: e2fsck/pass1.c:3828 #, c-format msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n" msgstr "" -#: e2fsck/pass1.c:4189 +#: e2fsck/pass1.c:4249 msgid "block bitmap" msgstr "" -#: e2fsck/pass1.c:4195 +#: e2fsck/pass1.c:4255 msgid "inode bitmap" msgstr "" -#: e2fsck/pass1.c:4201 +#: e2fsck/pass1.c:4261 msgid "inode table" msgstr "" @@ -610,7 +615,7 @@ msgstr "" msgid "inode loop detection bitmap" msgstr "" -#: e2fsck/pass4.c:300 +#: e2fsck/pass4.c:317 msgid "Pass 4" msgstr "" @@ -803,16 +808,19 @@ msgid "FLAG CLEARED" msgstr "" #: e2fsck/problem.c:118 +#, c-format #. @-expanded: block bitmap for group %g is not in group. (block %b)\n msgid "@b @B for @g %g is not in @g. (@b %b)\n" msgstr "" #: e2fsck/problem.c:122 +#, c-format #. @-expanded: inode bitmap for group %g is not in group. (block %b)\n msgid "@i @B for @g %g is not in @g. (@b %b)\n" msgstr "" #: e2fsck/problem.c:127 +#, c-format #. @-expanded: inode table for group %g is not in group. (block %b)\n #. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n msgid "" @@ -843,6 +851,7 @@ msgid "" msgstr "" #: e2fsck/problem.c:144 +#, c-format #. @-expanded: The filesystem size (according to the superblock) is %b blocks\n #. @-expanded: The physical size of the device is %c blocks\n #. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n @@ -853,6 +862,7 @@ msgid "" msgstr "" #: e2fsck/problem.c:151 +#, c-format #. @-expanded: superblock block_size = %b, fragsize = %c.\n #. @-expanded: This version of e2fsck does not support fragment sizes different\n #. @-expanded: from the block size.\n @@ -863,11 +873,13 @@ msgid "" msgstr "" #: e2fsck/problem.c:158 +#, c-format #. @-expanded: superblock blocks_per_group = %b, should have been %c\n msgid "@S @bs_per_group = %b, should have been %c\n" msgstr "" #: e2fsck/problem.c:163 +#, c-format #. @-expanded: superblock first_data_block = %b, should have been %c\n msgid "@S first_data_@b = %b, should have been %c\n" msgstr "" @@ -1127,6 +1139,7 @@ msgid "@g descriptor %g marked uninitialized without feature set.\n" msgstr "" #: e2fsck/problem.c:392 +#, c-format #. @-expanded: group descriptor %g has invalid unused inodes count %b. msgid "@g descriptor %g has invalid unused inodes count %b. " msgstr "" @@ -1176,6 +1189,7 @@ msgid "Setting free @is count to %j (was %i)\n" msgstr "" #: e2fsck/problem.c:435 +#, c-format #. @-expanded: Setting free blocks count to %c (was %b)\n msgid "Setting free @bs count to %c (was %b)\n" msgstr "" @@ -1271,6 +1285,7 @@ msgid "" msgstr "" #: e2fsck/problem.c:531 +#, c-format #. @-expanded: Orphan file (inode %i) contains hole at block %b. Terminating orphan file #. @-expanded: recovery.\n msgid "" @@ -1279,6 +1294,7 @@ msgid "" msgstr "" #: e2fsck/problem.c:536 +#, c-format #. @-expanded: Orphan file (inode %i) block %b contains wrong magic. Terminating orphan file #. @-expanded: recovery.\n msgid "" @@ -1287,6 +1303,7 @@ msgid "" msgstr "" #: e2fsck/problem.c:541 +#, c-format #. @-expanded: Orphan file (inode %i) block %b contains wrong checksum. Terminating orphan file #. @-expanded: recovery.\n msgid "" @@ -1342,26 +1359,31 @@ msgid "@i %i is a @z @d. " msgstr "" #: e2fsck/problem.c:590 +#, c-format #. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n msgid "@g %g's @b @B at %b @C.\n" msgstr "" #: e2fsck/problem.c:595 +#, c-format #. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n msgid "@g %g's @i @B at %b @C.\n" msgstr "" #: e2fsck/problem.c:600 +#, c-format #. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n msgid "@g %g's @i table at %b @C.\n" msgstr "" #: e2fsck/problem.c:605 +#, c-format #. @-expanded: group %g's block bitmap (%b) is bad. msgid "@g %g's @b @B (%b) is bad. " msgstr "" #: e2fsck/problem.c:610 +#, c-format #. @-expanded: group %g's inode bitmap (%b) is bad. msgid "@g %g's @i @B (%b) is bad. " msgstr "" @@ -1414,6 +1436,7 @@ msgid "Duplicate or bad @b in use!\n" msgstr "" #: e2fsck/problem.c:662 +#, c-format #. @-expanded: Bad block %b used as bad block inode indirect block. msgid "Bad @b %b used as bad @b @i indirect @b. " msgstr "" @@ -1449,26 +1472,31 @@ msgid "" msgstr "" #: e2fsck/problem.c:685 +#, c-format #. @-expanded: The primary superblock (%b) is on the bad block list.\n msgid "The primary @S (%b) is on the bad @b list.\n" msgstr "" #: e2fsck/problem.c:690 +#, c-format #. @-expanded: Block %b in the primary group descriptors is on the bad block list\n msgid "Block %b in the primary @g descriptors is on the bad @b list\n" msgstr "" #: e2fsck/problem.c:696 +#, c-format #. @-expanded: Warning: Group %g's superblock (%b) is bad.\n msgid "Warning: Group %g's @S (%b) is bad.\n" msgstr "" #: e2fsck/problem.c:702 +#, c-format #. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n" msgstr "" #: e2fsck/problem.c:708 +#, c-format #. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n" msgstr "" @@ -1485,6 +1513,7 @@ msgid "@A @b buffer for relocating %s\n" msgstr "" #: e2fsck/problem.c:725 +#, c-format #. @-expanded: Relocating group %g's %s from %b to %c...\n msgid "Relocating @g %g's %s from %b to %c...\n" msgstr "" @@ -1496,16 +1525,18 @@ msgid "Relocating @g %g's %s to %c...\n" msgstr "" #: e2fsck/problem.c:736 +#, c-format #. @-expanded: Warning: could not read block %b of %s: %m\n msgid "Warning: could not read @b %b of %s: %m\n" msgstr "" #: e2fsck/problem.c:741 +#, c-format #. @-expanded: Warning: could not write block %b for %s: %m\n msgid "Warning: could not write @b %b for %s: %m\n" msgstr "" -#: e2fsck/problem.c:746 e2fsck/problem.c:1965 +#: e2fsck/problem.c:746 e2fsck/problem.c:1979 #. @-expanded: error allocating inode bitmap (%N): %m\n msgid "@A @i @B (%N): %m\n" msgstr "" @@ -1603,16 +1634,19 @@ msgid "@A refcount structure (%N): %m\n" msgstr "" #: e2fsck/problem.c:851 +#, c-format #. @-expanded: Error reading extended attribute block %b for inode %i. msgid "Error reading @a @b %b for @i %i. " msgstr "" #: e2fsck/problem.c:856 +#, c-format #. @-expanded: inode %i has a bad extended attribute block %b. msgid "@i %i has a bad @a @b %b. " msgstr "" #: e2fsck/problem.c:861 +#, c-format #. @-expanded: Error reading extended attribute block %b (%m). msgid "Error reading @a @b %b (%m). " msgstr "" @@ -1623,11 +1657,13 @@ msgid "@a @b %b has reference count %r, @s %N. " msgstr "" #: e2fsck/problem.c:871 +#, c-format #. @-expanded: Error writing extended attribute block %b (%m). msgid "Error writing @a @b %b (%m). " msgstr "" #: e2fsck/problem.c:876 +#, c-format #. @-expanded: extended attribute block %b has h_blocks > 1. msgid "@a @b %b has h_@bs > 1. " msgstr "" @@ -1638,16 +1674,19 @@ msgid "@A @a region allocation structure. " msgstr "" #: e2fsck/problem.c:886 +#, c-format #. @-expanded: extended attribute block %b is corrupt (allocation collision). msgid "@a @b %b is corrupt (allocation collision). " msgstr "" #: e2fsck/problem.c:891 +#, c-format #. @-expanded: extended attribute block %b is corrupt (invalid name). msgid "@a @b %b is corrupt (@n name). " msgstr "" #: e2fsck/problem.c:896 +#, c-format #. @-expanded: extended attribute block %b is corrupt (invalid value). msgid "@a @b %b is corrupt (@n value). " msgstr "" @@ -1706,6 +1745,7 @@ msgid "@h %i has a tree depth (%N) which is too big\n" msgstr "" #: e2fsck/problem.c:956 +#, c-format #. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n #. @-expanded: filesystem metadata. msgid "" @@ -1761,6 +1801,7 @@ msgid "Error while reading over @x tree in @i %i: %m\n" msgstr "" #: e2fsck/problem.c:1009 +#, c-format #. @-expanded: Failed to iterate extents in inode %i\n #. @-expanded: \t(op %s, blk %b, lblk %c): %m\n msgid "" @@ -1816,6 +1857,7 @@ msgid "" msgstr "" #: e2fsck/problem.c:1053 +#, c-format #. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n" msgstr "" @@ -1847,6 +1889,7 @@ msgid "The bad @b @i looks @n. " msgstr "" #: e2fsck/problem.c:1084 +#, c-format #. @-expanded: inode %i has zero length extent\n #. @-expanded: \t(invalid logical block %c, physical block %b)\n msgid "" @@ -1881,6 +1924,7 @@ msgid "" msgstr "" #: e2fsck/problem.c:1119 +#, c-format #. @-expanded: inode %i extended attribute block %b passes checks, but checksum does not match block. msgid "@i %i @a @b %b passes checks, but checksum does not match @b. " msgstr "" @@ -1921,6 +1965,7 @@ msgid "" msgstr "" #: e2fsck/problem.c:1155 +#, c-format #. @-expanded: directory inode %i block %b should be at block %c. msgid "@d @i %i @b %b should be at @b %c. " msgstr "" @@ -1932,6 +1977,7 @@ msgid "@d @i %i has @x marked uninitialized at @b %c. " msgstr "" #: e2fsck/problem.c:1166 +#, c-format #. @-expanded: inode %i logical block %b (physical block %c) violates cluster allocation rules.\n #. @-expanded: Will fix in pass 1B.\n msgid "" @@ -2002,6 +2048,7 @@ msgid "@A %N bytes of memory for encrypted @i list\n" msgstr "" #: e2fsck/problem.c:1229 +#, c-format #. @-expanded: inode %i extent tree could be more shallow (%b; could be <= %c)\n msgid "@i %i @x tree could be more shallow (%b; could be <= %c)\n" msgstr "" @@ -2098,7 +2145,19 @@ msgstr "" msgid "Orphan file @i %i is not in use, but contains data. " msgstr "" -#: e2fsck/problem.c:1316 +#: e2fsck/problem.c:1314 +#, c-format +#. @-expanded: inode %i has the ea_inode flag set but is not a regular file. +msgid "@i %i has the ea_inode flag set but is not a regular file. " +msgstr "" + +#: e2fsck/problem.c:1319 +#, c-format +#. @-expanded: inode %i references EA inode but superblock is missing EA_INODE feature\n +msgid "@i %i references EA inode but @S is missing EA_INODE feature\n" +msgstr "" + +#: e2fsck/problem.c:1326 #. @-expanded: \n #. @-expanded: Running additional passes to resolve blocks claimed by more than one inode...\n #. @-expanded: Pass 1B: Rescanning for multiply-claimed blocks\n @@ -2108,45 +2167,46 @@ msgid "" "Pass 1B: Rescanning for @m @bs\n" msgstr "" -#: e2fsck/problem.c:1323 +#: e2fsck/problem.c:1333 #, no-c-format #. @-expanded: multiply-claimed block(s) in inode %i: msgid "@m @b(s) in @i %i:" msgstr "" -#: e2fsck/problem.c:1339 +#: e2fsck/problem.c:1349 #, no-c-format msgid "Error while scanning inodes (%i): %m\n" msgstr "" -#: e2fsck/problem.c:1345 +#: e2fsck/problem.c:1355 #, no-c-format #. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n msgid "@A @i @B (@i_dup_map): %m\n" msgstr "" -#: e2fsck/problem.c:1351 +#: e2fsck/problem.c:1361 #, no-c-format #. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n msgid "Error while iterating over @bs in @i %i (%s): %m\n" msgstr "" -#: e2fsck/problem.c:1356 e2fsck/problem.c:1736 +#: e2fsck/problem.c:1366 e2fsck/problem.c:1746 +#, c-format #. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n" msgstr "" -#: e2fsck/problem.c:1366 +#: e2fsck/problem.c:1376 #. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n msgid "Pass 1C: Scanning directories for @is with @m @bs\n" msgstr "" -#: e2fsck/problem.c:1372 +#: e2fsck/problem.c:1382 #. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n msgid "Pass 1D: Reconciling @m @bs\n" msgstr "" -#: e2fsck/problem.c:1377 +#: e2fsck/problem.c:1387 #. @-expanded: File %Q (inode #%i, mod time %IM) \n #. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n msgid "" @@ -2154,17 +2214,17 @@ msgid "" " has %r @m @b(s), shared with %N file(s):\n" msgstr "" -#: e2fsck/problem.c:1383 +#: e2fsck/problem.c:1393 #. @-expanded: \t%Q (inode #%i, mod time %IM)\n msgid "\t%Q (@i #%i, mod time %IM)\n" msgstr "" -#: e2fsck/problem.c:1388 +#: e2fsck/problem.c:1398 #. @-expanded: \t\n msgid "\t<@f metadata>\n" msgstr "" -#: e2fsck/problem.c:1393 +#: e2fsck/problem.c:1403 #. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n #. @-expanded: \n msgid "" @@ -2172,7 +2232,7 @@ msgid "" "\n" msgstr "" -#: e2fsck/problem.c:1398 +#: e2fsck/problem.c:1408 #. @-expanded: multiply-claimed blocks already reassigned or cloned.\n #. @-expanded: \n msgid "" @@ -2180,348 +2240,353 @@ msgid "" "\n" msgstr "" -#: e2fsck/problem.c:1412 +#: e2fsck/problem.c:1422 #, no-c-format msgid "Couldn't clone file: %m\n" msgstr "" -#: e2fsck/problem.c:1418 +#: e2fsck/problem.c:1428 #. @-expanded: Pass 1E: Optimizing extent trees\n msgid "Pass 1E: Optimizing @x trees\n" msgstr "" -#: e2fsck/problem.c:1424 +#: e2fsck/problem.c:1434 #, no-c-format #. @-expanded: Failed to optimize extent tree %p (%i): %m\n msgid "Failed to optimize @x tree %p (%i): %m\n" msgstr "" -#: e2fsck/problem.c:1429 +#: e2fsck/problem.c:1439 #. @-expanded: Optimizing extent trees: msgid "Optimizing @x trees: " msgstr "" -#: e2fsck/problem.c:1444 +#: e2fsck/problem.c:1454 +#, c-format msgid "Internal error: max extent tree depth too large (%b; expected=%c).\n" msgstr "" -#: e2fsck/problem.c:1449 +#: e2fsck/problem.c:1459 +#, c-format #. @-expanded: inode %i extent tree (at level %b) could be shorter. msgid "@i %i @x tree (at level %b) could be shorter. " msgstr "" -#: e2fsck/problem.c:1454 +#: e2fsck/problem.c:1464 +#, c-format #. @-expanded: inode %i extent tree (at level %b) could be narrower. msgid "@i %i @x tree (at level %b) could be narrower. " msgstr "" -#: e2fsck/problem.c:1461 +#: e2fsck/problem.c:1471 #. @-expanded: Pass 2: Checking directory structure\n msgid "Pass 2: Checking @d structure\n" msgstr "" -#: e2fsck/problem.c:1467 +#: e2fsck/problem.c:1477 #, no-c-format #. @-expanded: invalid inode number for '.' in directory inode %i.\n msgid "@n @i number for '.' in @d @i %i.\n" msgstr "" -#: e2fsck/problem.c:1472 +#: e2fsck/problem.c:1482 #. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n msgid "@E has @n @i #: %Di.\n" msgstr "" -#: e2fsck/problem.c:1477 +#: e2fsck/problem.c:1487 #. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di. msgid "@E has @D/unused @i %Di. " msgstr "" -#: e2fsck/problem.c:1482 +#: e2fsck/problem.c:1492 #. @-expanded: entry '%Dn' in %p (%i) is a link to '.' msgid "@E @L to '.' " msgstr "" -#: e2fsck/problem.c:1487 +#: e2fsck/problem.c:1497 #. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n msgid "@E points to @i (%Di) located in a bad @b.\n" msgstr "" -#: e2fsck/problem.c:1492 +#: e2fsck/problem.c:1502 #. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n msgid "@E @L to @d %P (%Di).\n" msgstr "" -#: e2fsck/problem.c:1497 +#: e2fsck/problem.c:1507 #. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n msgid "@E @L to the @r.\n" msgstr "" -#: e2fsck/problem.c:1502 +#: e2fsck/problem.c:1512 #. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n msgid "@E has illegal characters in its name.\n" msgstr "" -#: e2fsck/problem.c:1508 +#: e2fsck/problem.c:1518 #, no-c-format #. @-expanded: Missing '.' in directory inode %i.\n msgid "Missing '.' in @d @i %i.\n" msgstr "" -#: e2fsck/problem.c:1514 +#: e2fsck/problem.c:1524 #, no-c-format #. @-expanded: Missing '..' in directory inode %i.\n msgid "Missing '..' in @d @i %i.\n" msgstr "" -#: e2fsck/problem.c:1519 +#: e2fsck/problem.c:1529 #. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n" msgstr "" -#: e2fsck/problem.c:1524 +#: e2fsck/problem.c:1534 #. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n" msgstr "" -#: e2fsck/problem.c:1529 +#: e2fsck/problem.c:1539 #. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n msgid "i_faddr @F %IF, @s zero.\n" msgstr "" -#: e2fsck/problem.c:1534 +#: e2fsck/problem.c:1544 #. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n msgid "i_file_acl @F %If, @s zero.\n" msgstr "" -#: e2fsck/problem.c:1539 +#: e2fsck/problem.c:1549 #. @-expanded: i_size_high for inode %i (%Q) is %Id, should be zero.\n msgid "i_size_high @F %Id, @s zero.\n" msgstr "" -#: e2fsck/problem.c:1544 +#: e2fsck/problem.c:1554 #. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n msgid "i_frag @F %N, @s zero.\n" msgstr "" -#: e2fsck/problem.c:1549 +#: e2fsck/problem.c:1559 #. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n msgid "i_fsize @F %N, @s zero.\n" msgstr "" -#: e2fsck/problem.c:1554 +#: e2fsck/problem.c:1564 #. @-expanded: inode %i (%Q) has invalid mode (%Im).\n msgid "@i %i (%Q) has @n mode (%Im).\n" msgstr "" -#: e2fsck/problem.c:1559 +#: e2fsck/problem.c:1569 #. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n msgid "@d @i %i, %B, offset %N: @d corrupted\n" msgstr "" -#: e2fsck/problem.c:1564 +#: e2fsck/problem.c:1574 #. @-expanded: directory inode %i, %B, offset %N: filename too long\n msgid "@d @i %i, %B, offset %N: filename too long\n" msgstr "" -#: e2fsck/problem.c:1569 +#: e2fsck/problem.c:1579 #. @-expanded: directory inode %i has an unallocated %B. msgid "@d @i %i has an unallocated %B. " msgstr "" -#: e2fsck/problem.c:1575 +#: e2fsck/problem.c:1585 #, no-c-format #. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n msgid "'.' @d @e in @d @i %i is not NULL terminated\n" msgstr "" -#: e2fsck/problem.c:1581 +#: e2fsck/problem.c:1591 #, no-c-format #. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n msgid "'..' @d @e in @d @i %i is not NULL terminated\n" msgstr "" -#: e2fsck/problem.c:1586 +#: e2fsck/problem.c:1596 #. @-expanded: inode %i (%Q) is an illegal character device.\n msgid "@i %i (%Q) is an @I character @v.\n" msgstr "" -#: e2fsck/problem.c:1591 +#: e2fsck/problem.c:1601 #. @-expanded: inode %i (%Q) is an illegal block device.\n msgid "@i %i (%Q) is an @I @b @v.\n" msgstr "" -#: e2fsck/problem.c:1596 +#: e2fsck/problem.c:1606 #. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n msgid "@E is duplicate '.' @e.\n" msgstr "" -#: e2fsck/problem.c:1601 +#: e2fsck/problem.c:1611 #. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n msgid "@E is duplicate '..' @e.\n" msgstr "" -#: e2fsck/problem.c:1607 e2fsck/problem.c:1992 +#: e2fsck/problem.c:1617 e2fsck/problem.c:2006 #, no-c-format msgid "Internal error: couldn't find dir_info for %i.\n" msgstr "" -#: e2fsck/problem.c:1612 +#: e2fsck/problem.c:1622 #. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n msgid "@E has rec_len of %Dr, @s %N.\n" msgstr "" -#: e2fsck/problem.c:1618 +#: e2fsck/problem.c:1628 #, no-c-format #. @-expanded: error allocating icount structure: %m\n msgid "@A icount structure: %m\n" msgstr "" -#: e2fsck/problem.c:1624 +#: e2fsck/problem.c:1634 #, no-c-format #. @-expanded: Error iterating over directory blocks: %m\n msgid "Error iterating over @d @bs: %m\n" msgstr "" -#: e2fsck/problem.c:1629 +#: e2fsck/problem.c:1639 +#, c-format #. @-expanded: Error reading directory block %b (inode %i): %m\n msgid "Error reading @d @b %b (@i %i): %m\n" msgstr "" -#: e2fsck/problem.c:1634 +#: e2fsck/problem.c:1644 +#, c-format #. @-expanded: Error writing directory block %b (inode %i): %m\n msgid "Error writing @d @b %b (@i %i): %m\n" msgstr "" -#: e2fsck/problem.c:1640 +#: e2fsck/problem.c:1650 #, no-c-format #. @-expanded: error allocating new directory block for inode %i (%s): %m\n msgid "@A new @d @b for @i %i (%s): %m\n" msgstr "" -#: e2fsck/problem.c:1646 +#: e2fsck/problem.c:1656 #, no-c-format #. @-expanded: Error deallocating inode %i: %m\n msgid "Error deallocating @i %i: %m\n" msgstr "" -#: e2fsck/problem.c:1652 +#: e2fsck/problem.c:1662 #, no-c-format #. @-expanded: directory entry for '.' in %p (%i) is big.\n msgid "@d @e for '.' in %p (%i) is big.\n" msgstr "" -#: e2fsck/problem.c:1657 +#: e2fsck/problem.c:1667 #. @-expanded: inode %i (%Q) is an illegal FIFO.\n msgid "@i %i (%Q) is an @I FIFO.\n" msgstr "" -#: e2fsck/problem.c:1662 +#: e2fsck/problem.c:1672 #. @-expanded: inode %i (%Q) is an illegal socket.\n msgid "@i %i (%Q) is an @I socket.\n" msgstr "" -#: e2fsck/problem.c:1667 +#: e2fsck/problem.c:1677 #. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n msgid "Setting filetype for @E to %N.\n" msgstr "" -#: e2fsck/problem.c:1672 +#: e2fsck/problem.c:1682 #. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n msgid "@E has an incorrect filetype (was %Dt, @s %N).\n" msgstr "" -#: e2fsck/problem.c:1677 +#: e2fsck/problem.c:1687 #. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n msgid "@E has filetype set.\n" msgstr "" -#: e2fsck/problem.c:1682 +#: e2fsck/problem.c:1692 #. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n msgid "@E has a @z name.\n" msgstr "" -#: e2fsck/problem.c:1687 +#: e2fsck/problem.c:1697 #. @-expanded: Symlink %Q (inode #%i) is invalid.\n msgid "Symlink %Q (@i #%i) is @n.\n" msgstr "" -#: e2fsck/problem.c:1692 +#: e2fsck/problem.c:1702 #. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n msgid "@a @b @F @n (%If).\n" msgstr "" -#: e2fsck/problem.c:1697 +#: e2fsck/problem.c:1707 #. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n" msgstr "" -#: e2fsck/problem.c:1702 +#: e2fsck/problem.c:1712 #. @-expanded: problem in HTREE directory inode %d: %B not referenced\n msgid "@p @h %d: %B not referenced\n" msgstr "" -#: e2fsck/problem.c:1707 +#: e2fsck/problem.c:1717 #. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n msgid "@p @h %d: %B referenced twice\n" msgstr "" -#: e2fsck/problem.c:1712 +#: e2fsck/problem.c:1722 #. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n msgid "@p @h %d: %B has bad min hash\n" msgstr "" -#: e2fsck/problem.c:1717 +#: e2fsck/problem.c:1727 #. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n msgid "@p @h %d: %B has bad max hash\n" msgstr "" -#: e2fsck/problem.c:1722 +#: e2fsck/problem.c:1732 #. @-expanded: invalid HTREE directory inode %d (%q). msgid "@n @h %d (%q). " msgstr "" -#: e2fsck/problem.c:1726 +#: e2fsck/problem.c:1736 #. @-expanded: filesystem has large directories, but lacks LARGE_DIR flag in superblock.\n msgid "@f has large directories, but lacks LARGE_DIR flag in @S.\n" msgstr "" -#: e2fsck/problem.c:1731 +#: e2fsck/problem.c:1741 #. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n msgid "@p @h %d (%q): bad @b number %b.\n" msgstr "" -#: e2fsck/problem.c:1742 +#: e2fsck/problem.c:1752 #, no-c-format #. @-expanded: problem in HTREE directory inode %d: root node is invalid\n msgid "@p @h %d: root node is @n\n" msgstr "" -#: e2fsck/problem.c:1747 +#: e2fsck/problem.c:1757 #. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n msgid "@p @h %d: %B has @n limit (%N)\n" msgstr "" -#: e2fsck/problem.c:1752 +#: e2fsck/problem.c:1762 #. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n msgid "@p @h %d: %B has @n count (%N)\n" msgstr "" -#: e2fsck/problem.c:1757 +#: e2fsck/problem.c:1767 #. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n msgid "@p @h %d: %B has an unordered hash table\n" msgstr "" -#: e2fsck/problem.c:1762 +#: e2fsck/problem.c:1772 #. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n msgid "@p @h %d: %B has @n depth (%N)\n" msgstr "" -#: e2fsck/problem.c:1767 +#: e2fsck/problem.c:1777 #. @-expanded: Duplicate entry '%Dn' in %p (%i) found. msgid "Duplicate @E found. " msgstr "" -#: e2fsck/problem.c:1772 +#: e2fsck/problem.c:1782 #, no-c-format #. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n #. @-expanded: Rename to %s @@ -2530,7 +2595,7 @@ msgid "" "Rename to %s" msgstr "" -#: e2fsck/problem.c:1777 +#: e2fsck/problem.c:1787 #. @-expanded: Duplicate entry '%Dn' found.\n #. @-expanded: \tMarking %p (%i) to be rebuilt.\n #. @-expanded: \n @@ -2540,175 +2605,180 @@ msgid "" "\n" msgstr "" -#: e2fsck/problem.c:1782 +#: e2fsck/problem.c:1792 #. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n msgid "i_blocks_hi @F %N, @s zero.\n" msgstr "" -#: e2fsck/problem.c:1787 +#: e2fsck/problem.c:1797 #. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n msgid "Unexpected @b in @h %d (%q).\n" msgstr "" -#: e2fsck/problem.c:1792 +#: e2fsck/problem.c:1802 #. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n" msgstr "" -#: e2fsck/problem.c:1797 +#: e2fsck/problem.c:1807 #. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n msgid "@E references @i %Di found in @g %g's unused inodes area.\n" msgstr "" -#: e2fsck/problem.c:1802 +#: e2fsck/problem.c:1812 #. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n msgid "i_file_acl_hi @F %N, @s zero.\n" msgstr "" -#: e2fsck/problem.c:1808 +#: e2fsck/problem.c:1818 #, no-c-format #. @-expanded: problem in HTREE directory inode %d: root node fails checksum.\n msgid "@p @h %d: root node fails checksum.\n" msgstr "" -#: e2fsck/problem.c:1814 +#: e2fsck/problem.c:1824 #, no-c-format #. @-expanded: problem in HTREE directory inode %d: internal node fails checksum.\n msgid "@p @h %d: internal node fails checksum.\n" msgstr "" -#: e2fsck/problem.c:1819 +#: e2fsck/problem.c:1829 #. @-expanded: directory inode %i, %B, offset %N: directory has no checksum.\n msgid "@d @i %i, %B, offset %N: @d has no checksum.\n" msgstr "" -#: e2fsck/problem.c:1824 +#: e2fsck/problem.c:1834 #. @-expanded: directory inode %i, %B: directory passes checks but fails checksum.\n msgid "@d @i %i, %B: @d passes checks but fails checksum.\n" msgstr "" -#: e2fsck/problem.c:1829 +#: e2fsck/problem.c:1839 #. @-expanded: Inline directory inode %i size (%N) must be a multiple of 4.\n msgid "Inline @d @i %i size (%N) must be a multiple of 4.\n" msgstr "" -#: e2fsck/problem.c:1835 +#: e2fsck/problem.c:1845 #, no-c-format #. @-expanded: Fixing size of inline directory inode %i failed.\n msgid "Fixing size of inline @d @i %i failed.\n" msgstr "" -#: e2fsck/problem.c:1840 +#: e2fsck/problem.c:1850 #. @-expanded: Encrypted entry '%Dn' in %p (%i) is too short.\n msgid "Encrypted @E is too short.\n" msgstr "" -#: e2fsck/problem.c:1845 +#: e2fsck/problem.c:1855 #. @-expanded: Encrypted entry '%Dn' in %p (%i) references unencrypted inode %Di.\n msgid "Encrypted @E references unencrypted @i %Di.\n" msgstr "" -#: e2fsck/problem.c:1850 +#: e2fsck/problem.c:1860 #. @-expanded: Encrypted entry '%Dn' in %p (%i) references inode %Di, which has a different encryption policy.\n msgid "" "Encrypted @E references @i %Di, which has a different encryption policy.\n" msgstr "" -#: e2fsck/problem.c:1855 +#: e2fsck/problem.c:1865 #. @-expanded: entry '%Dn' in %p (%i) has illegal UTF-8 characters in its name.\n msgid "@E has illegal UTF-8 characters in its name.\n" msgstr "" -#: e2fsck/problem.c:1860 +#: e2fsck/problem.c:1870 #. @-expanded: Duplicate filename entry '%Dn' in %p (%i) found. msgid "Duplicate filename @E found. " msgstr "" -#: e2fsck/problem.c:1868 +#: e2fsck/problem.c:1875 +#. @-expanded: entry '%Dn' in %p (%i) references EA inode %Di.\n +msgid "@E references EA @i %Di.\n" +msgstr "" + +#: e2fsck/problem.c:1882 #. @-expanded: Pass 3: Checking directory connectivity\n msgid "Pass 3: Checking @d connectivity\n" msgstr "" -#: e2fsck/problem.c:1873 +#: e2fsck/problem.c:1887 #. @-expanded: root inode not allocated. msgid "@r not allocated. " msgstr "" -#: e2fsck/problem.c:1878 +#: e2fsck/problem.c:1892 #. @-expanded: No room in lost+found directory. msgid "No room in @l @d. " msgstr "" -#: e2fsck/problem.c:1884 +#: e2fsck/problem.c:1898 #, no-c-format #. @-expanded: Unconnected directory inode %i (was in %q)\n msgid "Unconnected @d @i %i (was in %q)\n" msgstr "" -#: e2fsck/problem.c:1889 +#: e2fsck/problem.c:1903 #. @-expanded: /lost+found not found. msgid "/@l not found. " msgstr "" -#: e2fsck/problem.c:1894 +#: e2fsck/problem.c:1908 #. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n" msgstr "" -#: e2fsck/problem.c:1900 +#: e2fsck/problem.c:1914 #, no-c-format #. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n msgid "Bad or non-existent /@l. Cannot reconnect.\n" msgstr "" -#: e2fsck/problem.c:1906 +#: e2fsck/problem.c:1920 #, no-c-format #. @-expanded: Could not expand /lost+found: %m\n msgid "Could not expand /@l: %m\n" msgstr "" -#: e2fsck/problem.c:1912 +#: e2fsck/problem.c:1926 #, no-c-format msgid "Could not reconnect %i: %m\n" msgstr "" -#: e2fsck/problem.c:1918 +#: e2fsck/problem.c:1932 #, no-c-format #. @-expanded: Error while trying to find /lost+found: %m\n msgid "Error while trying to find /@l: %m\n" msgstr "" -#: e2fsck/problem.c:1924 +#: e2fsck/problem.c:1938 #, no-c-format #. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n msgid "ext2fs_new_@b: %m while trying to create /@l @d\n" msgstr "" -#: e2fsck/problem.c:1930 +#: e2fsck/problem.c:1944 #, no-c-format #. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n msgid "ext2fs_new_@i: %m while trying to create /@l @d\n" msgstr "" -#: e2fsck/problem.c:1936 +#: e2fsck/problem.c:1950 #, no-c-format #. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n" msgstr "" -#: e2fsck/problem.c:1942 +#: e2fsck/problem.c:1956 #, no-c-format #. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n" msgstr "" -#: e2fsck/problem.c:1948 +#: e2fsck/problem.c:1962 #, no-c-format #. @-expanded: Error while adjusting inode count on inode %i\n msgid "Error while adjusting @i count on @i %i\n" msgstr "" -#: e2fsck/problem.c:1954 +#: e2fsck/problem.c:1968 #, no-c-format #. @-expanded: Couldn't fix parent of inode %i: %m\n #. @-expanded: \n @@ -2717,7 +2787,7 @@ msgid "" "\n" msgstr "" -#: e2fsck/problem.c:1960 +#: e2fsck/problem.c:1974 #, no-c-format #. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n #. @-expanded: \n @@ -2726,40 +2796,40 @@ msgid "" "\n" msgstr "" -#: e2fsck/problem.c:1971 +#: e2fsck/problem.c:1985 #, no-c-format #. @-expanded: Error creating root directory (%s): %m\n msgid "Error creating root @d (%s): %m\n" msgstr "" -#: e2fsck/problem.c:1977 +#: e2fsck/problem.c:1991 #, no-c-format #. @-expanded: Error creating /lost+found directory (%s): %m\n msgid "Error creating /@l @d (%s): %m\n" msgstr "" -#: e2fsck/problem.c:1982 +#: e2fsck/problem.c:1996 #. @-expanded: root inode is not a directory; aborting.\n msgid "@r is not a @d; aborting.\n" msgstr "" -#: e2fsck/problem.c:1987 +#: e2fsck/problem.c:2001 #. @-expanded: Cannot proceed without a root inode.\n msgid "Cannot proceed without a @r.\n" msgstr "" -#: e2fsck/problem.c:1998 +#: e2fsck/problem.c:2012 #, no-c-format #. @-expanded: /lost+found is not a directory (ino=%i)\n msgid "/@l is not a @d (ino=%i)\n" msgstr "" -#: e2fsck/problem.c:2003 +#: e2fsck/problem.c:2017 #. @-expanded: /lost+found has inline data\n msgid "/@l has inline data\n" msgstr "" -#: e2fsck/problem.c:2008 +#: e2fsck/problem.c:2022 #. @-expanded: Cannot allocate space for /lost+found.\n #. @-expanded: Place lost files in root directory instead msgid "" @@ -2767,7 +2837,7 @@ msgid "" "Place lost files in root directory instead" msgstr "" -#: e2fsck/problem.c:2013 +#: e2fsck/problem.c:2027 #. @-expanded: Insufficient space to recover lost files!\n #. @-expanded: Move data off the filesystem and re-run e2fsck.\n #. @-expanded: \n @@ -2777,56 +2847,56 @@ msgid "" "\n" msgstr "" -#: e2fsck/problem.c:2018 +#: e2fsck/problem.c:2032 #. @-expanded: /lost+found is encrypted\n msgid "/@l is encrypted\n" msgstr "" -#: e2fsck/problem.c:2024 +#: e2fsck/problem.c:2038 #, no-c-format #. @-expanded: Recursively looped directory inode %i (%p)\n msgid "Recursively looped @d @i %i (%p)\n" msgstr "" -#: e2fsck/problem.c:2031 +#: e2fsck/problem.c:2045 msgid "Pass 3A: Optimizing directories\n" msgstr "" -#: e2fsck/problem.c:2037 +#: e2fsck/problem.c:2051 #, no-c-format msgid "Failed to create dirs_to_hash iterator: %m\n" msgstr "" -#: e2fsck/problem.c:2042 +#: e2fsck/problem.c:2056 msgid "Failed to optimize directory %q (%d): %m\n" msgstr "" -#: e2fsck/problem.c:2047 +#: e2fsck/problem.c:2061 msgid "Optimizing directories: " msgstr "" -#: e2fsck/problem.c:2064 +#: e2fsck/problem.c:2078 msgid "Pass 4: Checking reference counts\n" msgstr "" -#: e2fsck/problem.c:2070 +#: e2fsck/problem.c:2084 #, no-c-format #. @-expanded: unattached zero-length inode %i. msgid "@u @z @i %i. " msgstr "" -#: e2fsck/problem.c:2076 +#: e2fsck/problem.c:2090 #, no-c-format #. @-expanded: unattached inode %i\n msgid "@u @i %i\n" msgstr "" -#: e2fsck/problem.c:2081 +#: e2fsck/problem.c:2095 #. @-expanded: inode %i ref count is %Il, should be %N. msgid "@i %i ref count is %Il, @s %N. " msgstr "" -#: e2fsck/problem.c:2085 +#: e2fsck/problem.c:2099 #. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n #. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n #. @-expanded: inode_link_info[%i] is %N, inode.i_links_count is %Il. They should be the same!\n @@ -2836,72 +2906,80 @@ msgid "" "@i_link_info[%i] is %N, @i.i_links_count is %Il. They @s the same!\n" msgstr "" -#: e2fsck/problem.c:2092 +#: e2fsck/problem.c:2106 #. @-expanded: extended attribute inode %i ref count is %N, should be %n. msgid "@a @i %i ref count is %N, @s %n. " msgstr "" -#: e2fsck/problem.c:2097 +#: e2fsck/problem.c:2111 #. @-expanded: directory exceeds max links, but no DIR_NLINK feature in superblock.\n msgid "@d exceeds max links, but no DIR_NLINK feature in @S.\n" msgstr "" -#: e2fsck/problem.c:2102 +#: e2fsck/problem.c:2116 #. @-expanded: directory inode %i ref count set to overflow but could be exact value %N. msgid "@d @i %i ref count set to overflow but could be exact value %N. " msgstr "" -#: e2fsck/problem.c:2109 +#: e2fsck/problem.c:2120 +#, c-format +#. @-expanded: Regular filesystem inode %i has EA_INODE flag set. +msgid "Regular @f @i %i has EA_INODE flag set. " +msgstr "" + +#: e2fsck/problem.c:2127 #. @-expanded: Pass 5: Checking group summary information\n msgid "Pass 5: Checking @g summary information\n" msgstr "" -#: e2fsck/problem.c:2114 +#: e2fsck/problem.c:2132 #. @-expanded: Padding at end of inode bitmap is not set. msgid "Padding at end of @i @B is not set. " msgstr "" -#: e2fsck/problem.c:2119 +#: e2fsck/problem.c:2137 #. @-expanded: Padding at end of block bitmap is not set. msgid "Padding at end of @b @B is not set. " msgstr "" -#: e2fsck/problem.c:2124 +#: e2fsck/problem.c:2142 #. @-expanded: block bitmap differences: msgid "@b @B differences: " msgstr "" -#: e2fsck/problem.c:2146 +#: e2fsck/problem.c:2164 #. @-expanded: inode bitmap differences: msgid "@i @B differences: " msgstr "" -#: e2fsck/problem.c:2168 +#: e2fsck/problem.c:2186 #. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n" msgstr "" -#: e2fsck/problem.c:2173 +#: e2fsck/problem.c:2191 #. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n msgid "Directories count wrong for @g #%g (%i, counted=%j).\n" msgstr "" -#: e2fsck/problem.c:2178 +#: e2fsck/problem.c:2196 #. @-expanded: Free inodes count wrong (%i, counted=%j).\n msgid "Free @is count wrong (%i, counted=%j).\n" msgstr "" -#: e2fsck/problem.c:2183 +#: e2fsck/problem.c:2201 +#, c-format #. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n" msgstr "" -#: e2fsck/problem.c:2188 +#: e2fsck/problem.c:2206 +#, c-format #. @-expanded: Free blocks count wrong (%b, counted=%c).\n msgid "Free @bs count wrong (%b, counted=%c).\n" msgstr "" -#: e2fsck/problem.c:2193 +#: e2fsck/problem.c:2211 #. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap #. @-expanded: endpoints (%i, %j)\n msgid "" @@ -2909,128 +2987,130 @@ msgid "" "endpoints (%i, %j)\n" msgstr "" -#: e2fsck/problem.c:2199 +#: e2fsck/problem.c:2217 msgid "Internal error: fudging end of bitmap (%N)\n" msgstr "" -#: e2fsck/problem.c:2205 +#: e2fsck/problem.c:2223 #, no-c-format #. @-expanded: Error copying in replacement inode bitmap: %m\n msgid "Error copying in replacement @i @B: %m\n" msgstr "" -#: e2fsck/problem.c:2211 +#: e2fsck/problem.c:2229 #, no-c-format #. @-expanded: Error copying in replacement block bitmap: %m\n msgid "Error copying in replacement @b @B: %m\n" msgstr "" -#: e2fsck/problem.c:2241 +#: e2fsck/problem.c:2259 #, no-c-format #. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n" msgstr "" -#: e2fsck/problem.c:2247 +#: e2fsck/problem.c:2265 #, no-c-format #. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n" msgstr "" -#: e2fsck/problem.c:2253 +#: e2fsck/problem.c:2271 #, no-c-format #. @-expanded: group %g inode bitmap does not match checksum.\n msgid "@g %g @i @B does not match checksum.\n" msgstr "" -#: e2fsck/problem.c:2259 +#: e2fsck/problem.c:2277 #, no-c-format #. @-expanded: group %g block bitmap does not match checksum.\n msgid "@g %g @b @B does not match checksum.\n" msgstr "" -#: e2fsck/problem.c:2266 +#: e2fsck/problem.c:2284 #. @-expanded: Recreate journal msgid "Recreate @j" msgstr "" -#: e2fsck/problem.c:2271 +#: e2fsck/problem.c:2289 msgid "Update quota info for quota type %N" msgstr "" -#: e2fsck/problem.c:2277 +#: e2fsck/problem.c:2295 #, no-c-format #. @-expanded: Error setting block group checksum info: %m\n msgid "Error setting @b @g checksum info: %m\n" msgstr "" -#: e2fsck/problem.c:2283 +#: e2fsck/problem.c:2301 #, no-c-format msgid "Error writing file system info: %m\n" msgstr "" -#: e2fsck/problem.c:2289 +#: e2fsck/problem.c:2307 #, no-c-format msgid "Error flushing writes to storage device: %m\n" msgstr "" -#: e2fsck/problem.c:2294 +#: e2fsck/problem.c:2312 msgid "Error writing quota info for quota type %N: %m\n" msgstr "" -#: e2fsck/problem.c:2299 +#: e2fsck/problem.c:2317 #. @-expanded: superblock has orphan file without journal.\n msgid "@S has orphan file without @j.\n" msgstr "" -#: e2fsck/problem.c:2304 +#: e2fsck/problem.c:2322 msgid "Failed to truncate orphan file.\n" msgstr "" -#: e2fsck/problem.c:2309 +#: e2fsck/problem.c:2327 msgid "Failed to initialize orphan file.\n" msgstr "" -#: e2fsck/problem.c:2314 +#: e2fsck/problem.c:2332 msgid "Cannot fix corrupted orphan file with invalid bitmaps.\n" msgstr "" -#: e2fsck/problem.c:2319 +#: e2fsck/problem.c:2337 #, c-format #. @-expanded: Failed to truncate orphan file (inode %i).\n msgid "Failed to truncate orphan file (@i %i).\n" msgstr "" -#: e2fsck/problem.c:2324 +#: e2fsck/problem.c:2342 +#, c-format #. @-expanded: Orphan file (inode %i) block %b is not clean.\n msgid "Orphan file (@i %i) @b %b is not clean.\n" msgstr "" -#: e2fsck/problem.c:2329 +#: e2fsck/problem.c:2347 msgid "Feature orphan_present is set but orphan file is clean.\n" msgstr "" -#: e2fsck/problem.c:2334 +#: e2fsck/problem.c:2352 msgid "Feature orphan_present is set but feature orphan_file is not.\n" msgstr "" -#: e2fsck/problem.c:2339 +#: e2fsck/problem.c:2357 #, c-format #. @-expanded: Orphan file (inode %i) size is not multiple of block size.\n msgid "Orphan file (@i %i) size is not multiple of block size.\n" msgstr "" -#: e2fsck/problem.c:2344 +#: e2fsck/problem.c:2362 +#, c-format #. @-expanded: Orphan file (inode %i) contains hole at block %b.\n msgid "Orphan file (@i %i) contains hole at @b %b.\n" msgstr "" -#: e2fsck/problem.c:2509 +#: e2fsck/problem.c:2527 #, c-format msgid "Unhandled error code (0x%x)!\n" msgstr "" -#: e2fsck/problem.c:2637 e2fsck/problem.c:2641 +#: e2fsck/problem.c:2655 e2fsck/problem.c:2659 msgid "IGNORED" msgstr "" @@ -3048,7 +3128,7 @@ msgstr "" msgid "size of inode=%d\n" msgstr "" -#: e2fsck/scantest.c:114 misc/e2image.c:1331 +#: e2fsck/scantest.c:114 misc/e2image.c:1337 msgid "while opening inode scan" msgstr "" @@ -3258,8 +3338,8 @@ msgid_plural "%12u files\n" msgstr[0] "" msgstr[1] "" -#: e2fsck/unix.c:241 misc/badblocks.c:1001 misc/tune2fs.c:3325 misc/util.c:135 -#: resize/main.c:359 +#: e2fsck/unix.c:241 misc/badblocks.c:1001 misc/tune2fs.c:3326 misc/util.c:135 +#: resize/main.c:357 #, c-format msgid "while determining whether %s is mounted." msgstr "" @@ -3307,77 +3387,77 @@ msgstr "" msgid "check aborted.\n" msgstr "" -#: e2fsck/unix.c:379 +#: e2fsck/unix.c:383 msgid " contains a file system with errors" msgstr "" -#: e2fsck/unix.c:381 +#: e2fsck/unix.c:385 msgid " was not cleanly unmounted" msgstr "" -#: e2fsck/unix.c:383 +#: e2fsck/unix.c:387 msgid " primary superblock features different from backup" msgstr "" -#: e2fsck/unix.c:387 +#: e2fsck/unix.c:391 #, c-format msgid " has been mounted %u times without being checked" msgstr "" -#: e2fsck/unix.c:394 +#: e2fsck/unix.c:398 msgid " has filesystem last checked time in the future" msgstr "" -#: e2fsck/unix.c:400 +#: e2fsck/unix.c:404 #, c-format msgid " has gone %u days without being checked" msgstr "" -#: e2fsck/unix.c:409 +#: e2fsck/unix.c:413 msgid "ignoring check interval, broken_system_clock set\n" msgstr "" -#: e2fsck/unix.c:415 +#: e2fsck/unix.c:419 msgid ", check forced.\n" msgstr "" -#: e2fsck/unix.c:448 +#: e2fsck/unix.c:452 #, c-format msgid "%s: clean, %u/%u files, %llu/%llu blocks" msgstr "" -#: e2fsck/unix.c:469 +#: e2fsck/unix.c:473 msgid " (check deferred; on battery)" msgstr "" -#: e2fsck/unix.c:472 +#: e2fsck/unix.c:476 msgid " (check after next mount)" msgstr "" -#: e2fsck/unix.c:474 +#: e2fsck/unix.c:478 #, c-format msgid " (check in %ld mounts)" msgstr "" -#: e2fsck/unix.c:624 +#: e2fsck/unix.c:628 #, c-format msgid "ERROR: Couldn't open /dev/null (%s)\n" msgstr "" -#: e2fsck/unix.c:695 +#: e2fsck/unix.c:699 msgid "Invalid EA version.\n" msgstr "" -#: e2fsck/unix.c:708 +#: e2fsck/unix.c:712 msgid "Invalid readahead buffer size.\n" msgstr "" -#: e2fsck/unix.c:771 +#: e2fsck/unix.c:775 #, c-format msgid "Unknown extended option: %s\n" msgstr "" -#: e2fsck/unix.c:779 +#: e2fsck/unix.c:783 msgid "" "\n" "Extended options are separated by commas, and may take an argument which\n" @@ -3385,87 +3465,87 @@ msgid "" "\n" msgstr "" -#: e2fsck/unix.c:783 +#: e2fsck/unix.c:787 msgid "\tea_ver=\n" msgstr "" -#: e2fsck/unix.c:792 +#: e2fsck/unix.c:796 msgid "\treadahead_kb=\n" msgstr "" -#: e2fsck/unix.c:805 +#: e2fsck/unix.c:809 #, c-format msgid "" "Syntax error in e2fsck config file (%s, line #%d)\n" "\t%s\n" msgstr "" -#: e2fsck/unix.c:878 +#: e2fsck/unix.c:882 #, c-format msgid "Error validating file descriptor %d: %s\n" msgstr "" -#: e2fsck/unix.c:882 +#: e2fsck/unix.c:886 msgid "Invalid completion information file descriptor" msgstr "" -#: e2fsck/unix.c:897 +#: e2fsck/unix.c:901 msgid "Only one of the options -p/-a, -n or -y may be specified." msgstr "" -#: e2fsck/unix.c:918 +#: e2fsck/unix.c:922 #, c-format msgid "The -t option is not supported on this version of e2fsck.\n" msgstr "" -#: e2fsck/unix.c:950 e2fsck/unix.c:1028 misc/e2initrd_helper.c:331 +#: e2fsck/unix.c:954 e2fsck/unix.c:1032 misc/e2initrd_helper.c:331 #: misc/tune2fs.c:1920 misc/tune2fs.c:2220 misc/tune2fs.c:2238 #, c-format msgid "Unable to resolve '%s'" msgstr "" -#: e2fsck/unix.c:1007 +#: e2fsck/unix.c:1011 msgid "The -n and -D options are incompatible." msgstr "" -#: e2fsck/unix.c:1012 +#: e2fsck/unix.c:1016 msgid "The -n and -c options are incompatible." msgstr "" -#: e2fsck/unix.c:1017 +#: e2fsck/unix.c:1021 msgid "The -n and -l/-L options are incompatible." msgstr "" -#: e2fsck/unix.c:1041 +#: e2fsck/unix.c:1045 msgid "The -D and -E fixes_only options are incompatible." msgstr "" -#: e2fsck/unix.c:1047 +#: e2fsck/unix.c:1051 msgid "The -E bmap2extent and fixes_only options are incompatible." msgstr "" -#: e2fsck/unix.c:1098 +#: e2fsck/unix.c:1102 #, c-format msgid "while opening %s for flushing" msgstr "" -#: e2fsck/unix.c:1104 resize/main.c:391 +#: e2fsck/unix.c:1108 resize/main.c:389 #, c-format msgid "while trying to flush %s" msgstr "" -#: e2fsck/unix.c:1111 +#: e2fsck/unix.c:1115 msgid "The -c and the -l/-L options may not be both used at the same time.\n" msgstr "" -#: e2fsck/unix.c:1158 +#: e2fsck/unix.c:1162 #, c-format msgid "" "E2FSCK_JBD_DEBUG \"%s\" not an integer\n" "\n" msgstr "" -#: e2fsck/unix.c:1167 +#: e2fsck/unix.c:1171 #, c-format msgid "" "\n" @@ -3473,31 +3553,31 @@ msgid "" "\n" msgstr "" -#: e2fsck/unix.c:1265 +#: e2fsck/unix.c:1269 #, c-format msgid "" "MMP interval is %u seconds and total wait time is %u seconds. Please " "wait...\n" msgstr "" -#: e2fsck/unix.c:1282 e2fsck/unix.c:1287 +#: e2fsck/unix.c:1286 e2fsck/unix.c:1291 msgid "while checking MMP block" msgstr "" -#: e2fsck/unix.c:1289 +#: e2fsck/unix.c:1293 #, c-format msgid "" "If you are sure the filesystem is not in use on any node, run:\n" "'tune2fs -f -E clear_mmp %s'\n" msgstr "" -#: e2fsck/unix.c:1305 +#: e2fsck/unix.c:1309 msgid "while reading MMP block" msgstr "" -#: e2fsck/unix.c:1325 e2fsck/unix.c:1377 misc/e2undo.c:242 misc/e2undo.c:287 -#: misc/mke2fs.c:2826 misc/mke2fs.c:2877 misc/tune2fs.c:2960 -#: misc/tune2fs.c:3005 resize/main.c:188 resize/main.c:233 +#: e2fsck/unix.c:1329 e2fsck/unix.c:1381 misc/e2undo.c:242 misc/e2undo.c:287 +#: misc/mke2fs.c:2850 misc/mke2fs.c:2901 misc/tune2fs.c:2961 +#: misc/tune2fs.c:3006 resize/main.c:188 resize/main.c:233 #, c-format msgid "" "Overwriting existing filesystem; this can be undone using the command:\n" @@ -3505,215 +3585,215 @@ msgid "" "\n" msgstr "" -#: e2fsck/unix.c:1366 misc/e2undo.c:276 misc/mke2fs.c:2866 misc/tune2fs.c:2994 +#: e2fsck/unix.c:1370 misc/e2undo.c:276 misc/mke2fs.c:2890 misc/tune2fs.c:2995 #: resize/main.c:222 #, c-format msgid "while trying to delete %s" msgstr "" -#: e2fsck/unix.c:1392 misc/mke2fs.c:2892 resize/main.c:243 +#: e2fsck/unix.c:1396 misc/mke2fs.c:2916 resize/main.c:243 msgid "while trying to setup undo file\n" msgstr "" -#: e2fsck/unix.c:1436 +#: e2fsck/unix.c:1440 msgid "Error: ext2fs library version out of date!\n" msgstr "" -#: e2fsck/unix.c:1443 +#: e2fsck/unix.c:1447 msgid "while trying to initialize program" msgstr "" -#: e2fsck/unix.c:1480 +#: e2fsck/unix.c:1484 #, c-format msgid "\tUsing %s, %s\n" msgstr "" -#: e2fsck/unix.c:1492 +#: e2fsck/unix.c:1496 msgid "need terminal for interactive repairs" msgstr "" -#: e2fsck/unix.c:1553 +#: e2fsck/unix.c:1557 #, c-format msgid "%s: %s trying backup blocks...\n" msgstr "" -#: e2fsck/unix.c:1555 +#: e2fsck/unix.c:1559 msgid "Superblock invalid," msgstr "" -#: e2fsck/unix.c:1556 +#: e2fsck/unix.c:1560 msgid "Group descriptors look bad..." msgstr "" -#: e2fsck/unix.c:1566 +#: e2fsck/unix.c:1570 #, c-format msgid "%s: %s while using the backup blocks" msgstr "" -#: e2fsck/unix.c:1570 +#: e2fsck/unix.c:1574 #, c-format msgid "%s: going back to original superblock\n" msgstr "" -#: e2fsck/unix.c:1599 +#: e2fsck/unix.c:1603 msgid "" "The filesystem revision is apparently too high for this version of e2fsck.\n" "(Or the filesystem superblock is corrupt)\n" "\n" msgstr "" -#: e2fsck/unix.c:1606 +#: e2fsck/unix.c:1610 msgid "Could this be a zero-length partition?\n" msgstr "" -#: e2fsck/unix.c:1608 +#: e2fsck/unix.c:1612 #, c-format msgid "You must have %s access to the filesystem or be root\n" msgstr "" -#: e2fsck/unix.c:1614 +#: e2fsck/unix.c:1618 msgid "Possibly non-existent or swap device?\n" msgstr "" -#: e2fsck/unix.c:1616 +#: e2fsck/unix.c:1620 msgid "Filesystem mounted or opened exclusively by another program?\n" msgstr "" -#: e2fsck/unix.c:1620 +#: e2fsck/unix.c:1624 msgid "Possibly non-existent device?\n" msgstr "" -#: e2fsck/unix.c:1623 +#: e2fsck/unix.c:1627 msgid "" "Disk write-protected; use the -n option to do a read-only\n" "check of the device.\n" msgstr "" -#: e2fsck/unix.c:1638 +#: e2fsck/unix.c:1642 #, c-format msgid "%s: Trying to load superblock despite errors...\n" msgstr "" -#: e2fsck/unix.c:1713 +#: e2fsck/unix.c:1717 msgid "Get a newer version of e2fsck!" msgstr "" -#: e2fsck/unix.c:1773 +#: e2fsck/unix.c:1777 #, c-format msgid "while checking journal for %s" msgstr "" -#: e2fsck/unix.c:1776 +#: e2fsck/unix.c:1780 msgid "Cannot proceed with file system check" msgstr "" -#: e2fsck/unix.c:1787 +#: e2fsck/unix.c:1791 msgid "" "Warning: skipping journal recovery because doing a read-only filesystem " "check.\n" msgstr "" -#: e2fsck/unix.c:1799 +#: e2fsck/unix.c:1803 #, c-format msgid "unable to set superblock flags on %s\n" msgstr "" -#: e2fsck/unix.c:1805 +#: e2fsck/unix.c:1809 #, c-format msgid "Journal checksum error found in %s\n" msgstr "" -#: e2fsck/unix.c:1809 +#: e2fsck/unix.c:1813 #, c-format msgid "Journal corrupted in %s\n" msgstr "" -#: e2fsck/unix.c:1813 +#: e2fsck/unix.c:1817 #, c-format msgid "while recovering journal of %s" msgstr "" -#: e2fsck/unix.c:1835 +#: e2fsck/unix.c:1839 #, c-format msgid "%s has unsupported feature(s):" msgstr "" -#: e2fsck/unix.c:1850 +#: e2fsck/unix.c:1854 #, c-format msgid "%s has unsupported encoding: %0x\n" msgstr "" -#: e2fsck/unix.c:1900 +#: e2fsck/unix.c:1904 #, c-format msgid "%s: %s while reading bad blocks inode\n" msgstr "" -#: e2fsck/unix.c:1903 +#: e2fsck/unix.c:1907 msgid "This doesn't bode well, but we'll try to go on...\n" msgstr "" -#: e2fsck/unix.c:1946 +#: e2fsck/unix.c:1950 #, c-format msgid "Creating journal (%d blocks): " msgstr "" -#: e2fsck/unix.c:1955 e2fsck/unix.c:2027 +#: e2fsck/unix.c:1959 e2fsck/unix.c:2031 msgid " Done.\n" msgstr "" -#: e2fsck/unix.c:1957 +#: e2fsck/unix.c:1961 msgid "" "\n" "*** journal has been regenerated ***\n" msgstr "" -#: e2fsck/unix.c:1963 +#: e2fsck/unix.c:1967 msgid "aborted" msgstr "" -#: e2fsck/unix.c:1965 +#: e2fsck/unix.c:1969 #, c-format msgid "%s: e2fsck canceled.\n" msgstr "" -#: e2fsck/unix.c:2015 +#: e2fsck/unix.c:2019 #, c-format msgid "Creating orphan file (%d blocks): " msgstr "" -#: e2fsck/unix.c:2059 +#: e2fsck/unix.c:2063 msgid "Restarting e2fsck from the beginning...\n" msgstr "" -#: e2fsck/unix.c:2063 +#: e2fsck/unix.c:2067 msgid "while resetting context" msgstr "" -#: e2fsck/unix.c:2123 +#: e2fsck/unix.c:2127 #, c-format msgid "" "\n" "%s: ***** FILE SYSTEM ERRORS CORRECTED *****\n" msgstr "" -#: e2fsck/unix.c:2125 +#: e2fsck/unix.c:2129 #, c-format msgid "%s: File system was modified.\n" msgstr "" -#: e2fsck/unix.c:2129 e2fsck/util.c:67 +#: e2fsck/unix.c:2133 e2fsck/util.c:67 #, c-format msgid "" "\n" "%s: ***** FILE SYSTEM WAS MODIFIED *****\n" msgstr "" -#: e2fsck/unix.c:2134 +#: e2fsck/unix.c:2138 #, c-format msgid "%s: ***** REBOOT SYSTEM *****\n" msgstr "" -#: e2fsck/unix.c:2144 e2fsck/util.c:73 +#: e2fsck/unix.c:2148 e2fsck/util.c:73 #, c-format msgid "" "\n" @@ -4138,168 +4218,168 @@ msgstr "" msgid "Must use '-v', =, - or +\n" msgstr "" -#: misc/create_inode.c:82 misc/create_inode.c:121 +#: misc/create_inode.c:81 misc/create_inode.c:127 #, c-format msgid "while reading inode %u" msgstr "" -#: misc/create_inode.c:92 misc/create_inode.c:301 misc/create_inode.c:368 -#: misc/create_inode.c:406 +#: misc/create_inode.c:91 misc/create_inode.c:307 misc/create_inode.c:374 +#: misc/create_inode.c:412 msgid "while expanding directory" msgstr "" -#: misc/create_inode.c:99 +#: misc/create_inode.c:98 #, c-format msgid "while linking \"%s\"" msgstr "" -#: misc/create_inode.c:107 misc/create_inode.c:136 misc/create_inode.c:337 +#: misc/create_inode.c:106 misc/create_inode.c:142 misc/create_inode.c:343 #, c-format msgid "while writing inode %u" msgstr "" -#: misc/create_inode.c:158 misc/create_inode.c:189 +#: misc/create_inode.c:164 misc/create_inode.c:195 #, c-format msgid "while listing attributes of \"%s\"" msgstr "" -#: misc/create_inode.c:169 +#: misc/create_inode.c:175 #, c-format msgid "while opening inode %u" msgstr "" -#: misc/create_inode.c:176 +#: misc/create_inode.c:182 #, c-format msgid "while reading xattrs for inode %u" msgstr "" -#: misc/create_inode.c:182 misc/create_inode.c:209 misc/create_inode.c:1066 +#: misc/create_inode.c:188 misc/create_inode.c:215 misc/create_inode.c:1072 #: misc/e2undo.c:188 misc/e2undo.c:485 misc/e2undo.c:491 misc/e2undo.c:497 -#: misc/mke2fs.c:363 +#: misc/mke2fs.c:364 msgid "while allocating memory" msgstr "" -#: misc/create_inode.c:202 misc/create_inode.c:218 +#: misc/create_inode.c:208 misc/create_inode.c:224 #, c-format msgid "while reading attribute \"%s\" of \"%s\"" msgstr "" -#: misc/create_inode.c:227 +#: misc/create_inode.c:233 #, c-format msgid "while writing attribute \"%s\" to inode %u" msgstr "" -#: misc/create_inode.c:237 +#: misc/create_inode.c:243 #, c-format msgid "while closing inode %u" msgstr "" -#: misc/create_inode.c:288 +#: misc/create_inode.c:294 #, c-format msgid "while allocating inode \"%s\"" msgstr "" -#: misc/create_inode.c:307 +#: misc/create_inode.c:313 #, c-format msgid "while creating inode \"%s\"" msgstr "" -#: misc/create_inode.c:375 +#: misc/create_inode.c:381 #, c-format msgid "while creating symlink \"%s\"" msgstr "" -#: misc/create_inode.c:393 misc/create_inode.c:658 misc/create_inode.c:986 +#: misc/create_inode.c:399 misc/create_inode.c:664 misc/create_inode.c:992 #, c-format msgid "while looking up \"%s\"" msgstr "" -#: misc/create_inode.c:413 +#: misc/create_inode.c:419 #, c-format msgid "while creating directory \"%s\"" msgstr "" -#: misc/create_inode.c:644 +#: misc/create_inode.c:650 #, c-format msgid "while opening \"%s\" to copy" msgstr "" -#: misc/create_inode.c:824 +#: misc/create_inode.c:830 #, c-format msgid "while changing working directory to \"%s\"" msgstr "" -#: misc/create_inode.c:834 +#: misc/create_inode.c:840 #, c-format msgid "while scanning directory \"%s\"" msgstr "" -#: misc/create_inode.c:844 +#: misc/create_inode.c:850 #, c-format msgid "while lstat \"%s\"" msgstr "" -#: misc/create_inode.c:894 +#: misc/create_inode.c:900 #, c-format msgid "while creating special file \"%s\"" msgstr "" -#: misc/create_inode.c:906 +#: misc/create_inode.c:912 msgid "malloc failed" msgstr "" -#: misc/create_inode.c:914 +#: misc/create_inode.c:920 #, c-format msgid "while trying to read link \"%s\"" msgstr "" -#: misc/create_inode.c:921 +#: misc/create_inode.c:927 msgid "symlink increased in size between lstat() and readlink()" msgstr "" -#: misc/create_inode.c:932 +#: misc/create_inode.c:938 #, c-format msgid "while writing symlink\"%s\"" msgstr "" -#: misc/create_inode.c:944 +#: misc/create_inode.c:950 #, c-format msgid "while writing file \"%s\"" msgstr "" -#: misc/create_inode.c:957 +#: misc/create_inode.c:963 #, c-format msgid "while making dir \"%s\"" msgstr "" -#: misc/create_inode.c:975 +#: misc/create_inode.c:981 msgid "while changing directory" msgstr "" -#: misc/create_inode.c:981 +#: misc/create_inode.c:987 #, c-format msgid "ignoring entry \"%s\"" msgstr "" -#: misc/create_inode.c:994 +#: misc/create_inode.c:1000 #, c-format msgid "while setting inode for \"%s\"" msgstr "" -#: misc/create_inode.c:1001 +#: misc/create_inode.c:1007 #, c-format msgid "while setting xattrs for \"%s\"" msgstr "" -#: misc/create_inode.c:1027 +#: misc/create_inode.c:1033 msgid "while saving inode data" msgstr "" -#: misc/create_inode.c:1086 +#: misc/create_inode.c:1092 msgid "while calling stat" msgstr "" -#: misc/create_inode.c:1098 +#: misc/create_inode.c:1104 msgid "while copying xattrs on root directory" msgstr "" @@ -4450,7 +4530,7 @@ msgstr "" msgid "reading MMP block %llu from '%s'\n" msgstr "" -#: misc/dumpe2fs.c:520 misc/mke2fs.c:837 misc/tune2fs.c:2260 +#: misc/dumpe2fs.c:520 misc/mke2fs.c:849 misc/tune2fs.c:2260 msgid "Couldn't allocate memory to parse options!\n" msgstr "" @@ -4478,13 +4558,13 @@ msgid "" "\tblocksize=\n" msgstr "" -#: misc/dumpe2fs.c:663 misc/mke2fs.c:1963 +#: misc/dumpe2fs.c:663 misc/mke2fs.c:1990 #, c-format msgid "\tUsing %s\n" msgstr "" -#: misc/dumpe2fs.c:710 misc/e2image.c:1643 misc/tune2fs.c:3250 -#: resize/main.c:426 +#: misc/dumpe2fs.c:710 misc/e2image.c:1649 misc/tune2fs.c:3251 +#: resize/main.c:424 msgid "Couldn't find valid filesystem superblock.\n" msgstr "" @@ -4523,7 +4603,7 @@ msgid "" "[ dest_fs ]\n" msgstr "" -#: misc/e2image.c:177 misc/e2image.c:593 misc/e2image.c:599 misc/e2image.c:1201 +#: misc/e2image.c:177 misc/e2image.c:599 misc/e2image.c:605 misc/e2image.c:1207 msgid "while allocating buffer" msgstr "" @@ -4549,158 +4629,158 @@ msgstr "" msgid "Couldn't allocate header buffer\n" msgstr "" -#: misc/e2image.c:250 +#: misc/e2image.c:251 msgid "while writing superblock" msgstr "" -#: misc/e2image.c:259 +#: misc/e2image.c:260 msgid "while writing inode table" msgstr "" -#: misc/e2image.c:267 +#: misc/e2image.c:268 msgid "while writing block bitmap" msgstr "" -#: misc/e2image.c:275 +#: misc/e2image.c:276 msgid "while writing inode bitmap" msgstr "" -#: misc/e2image.c:517 +#: misc/e2image.c:523 #, c-format msgid "Corrupt directory block %llu: bad rec_len (%d)\n" msgstr "" -#: misc/e2image.c:529 +#: misc/e2image.c:535 #, c-format msgid "Corrupt directory block %llu: bad name_len (%d)\n" msgstr "" -#: misc/e2image.c:570 +#: misc/e2image.c:576 #, c-format msgid "%llu / %llu blocks (%d%%)" msgstr "" -#: misc/e2image.c:603 misc/e2image.c:643 +#: misc/e2image.c:609 misc/e2image.c:649 msgid "Copying " msgstr "" -#: misc/e2image.c:640 +#: misc/e2image.c:646 msgid "" "Stopping now will destroy the filesystem, interrupt again if you are sure\n" msgstr "" -#: misc/e2image.c:666 +#: misc/e2image.c:672 #, c-format msgid " %s remaining at %.2f MB/s" msgstr "" -#: misc/e2image.c:678 misc/e2image.c:1211 +#: misc/e2image.c:684 misc/e2image.c:1217 #, c-format msgid "error reading block %llu" msgstr "" -#: misc/e2image.c:733 +#: misc/e2image.c:739 #, c-format msgid "Copied %llu / %llu blocks (%d%%) in %s " msgstr "" -#: misc/e2image.c:738 +#: misc/e2image.c:744 #, c-format msgid "at %.2f MB/s" msgstr "" -#: misc/e2image.c:774 +#: misc/e2image.c:780 msgid "while allocating l1 table" msgstr "" -#: misc/e2image.c:819 +#: misc/e2image.c:825 msgid "while allocating l2 cache" msgstr "" -#: misc/e2image.c:842 +#: misc/e2image.c:848 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 "" -#: misc/e2image.c:1168 +#: misc/e2image.c:1174 msgid "while allocating ext2_qcow2_image" msgstr "" -#: misc/e2image.c:1175 +#: misc/e2image.c:1181 msgid "while initializing ext2_qcow2_image" msgstr "" -#: misc/e2image.c:1235 misc/e2image.c:1253 +#: misc/e2image.c:1241 misc/e2image.c:1259 msgid "Programming error: multiple sequential refcount blocks created!\n" msgstr "" -#: misc/e2image.c:1294 +#: misc/e2image.c:1300 msgid "while allocating block bitmap" msgstr "" -#: misc/e2image.c:1303 +#: misc/e2image.c:1309 msgid "while allocating scramble block bitmap" msgstr "" -#: misc/e2image.c:1326 +#: misc/e2image.c:1332 msgid "Scanning inodes...\n" msgstr "" -#: misc/e2image.c:1338 +#: misc/e2image.c:1344 msgid "Can't allocate block buffer" msgstr "" -#: misc/e2image.c:1350 +#: misc/e2image.c:1356 msgid "while getting next inode" msgstr "" -#: misc/e2image.c:1380 misc/e2image.c:1394 +#: misc/e2image.c:1386 misc/e2image.c:1400 #, c-format msgid "while iterating over inode %u" msgstr "" -#: misc/e2image.c:1426 +#: misc/e2image.c:1432 msgid "Raw and qcow2 images cannot be installed" msgstr "" -#: misc/e2image.c:1448 +#: misc/e2image.c:1454 msgid "error reading bitmaps" msgstr "" -#: misc/e2image.c:1460 +#: misc/e2image.c:1466 msgid "while opening device file" msgstr "" -#: misc/e2image.c:1471 +#: misc/e2image.c:1477 msgid "while restoring the image table" msgstr "" -#: misc/e2image.c:1579 +#: misc/e2image.c:1585 msgid "-a option can only be used with raw or QCOW2 images." msgstr "" -#: misc/e2image.c:1584 +#: misc/e2image.c:1590 msgid "-b option can only be used with raw or QCOW2 images." msgstr "" -#: misc/e2image.c:1590 +#: misc/e2image.c:1596 msgid "Offsets are only allowed with raw images." msgstr "" -#: misc/e2image.c:1595 +#: misc/e2image.c:1601 msgid "Move mode is only allowed with raw images." msgstr "" -#: misc/e2image.c:1600 +#: misc/e2image.c:1606 msgid "Move mode requires all data mode." msgstr "" -#: misc/e2image.c:1610 +#: misc/e2image.c:1616 msgid "checking if mounted" msgstr "" -#: misc/e2image.c:1617 +#: misc/e2image.c:1623 msgid "" "\n" "Running e2image on a R/W mounted filesystem can result in an\n" @@ -4708,51 +4788,51 @@ msgid "" "Use -f option if you really want to do that.\n" msgstr "" -#: misc/e2image.c:1671 +#: misc/e2image.c:1677 msgid "QCOW2 image can not be written to the stdout!\n" msgstr "" -#: misc/e2image.c:1677 +#: misc/e2image.c:1683 msgid "Can not stat output\n" msgstr "" -#: misc/e2image.c:1687 +#: misc/e2image.c:1693 #, c-format msgid "Image (%s) is compressed\n" msgstr "" -#: misc/e2image.c:1690 +#: misc/e2image.c:1696 #, c-format msgid "Image (%s) is encrypted\n" msgstr "" -#: misc/e2image.c:1693 +#: misc/e2image.c:1699 #, c-format msgid "Image (%s) is corrupted\n" msgstr "" -#: misc/e2image.c:1697 +#: misc/e2image.c:1703 #, c-format msgid "while trying to convert qcow2 image (%s) into raw image (%s)" msgstr "" -#: misc/e2image.c:1707 +#: misc/e2image.c:1713 msgid "The -c option only supported in raw mode\n" msgstr "" -#: misc/e2image.c:1712 +#: misc/e2image.c:1718 msgid "The -c option not supported when writing to stdout\n" msgstr "" -#: misc/e2image.c:1719 +#: misc/e2image.c:1725 msgid "while allocating check_buf" msgstr "" -#: misc/e2image.c:1725 +#: misc/e2image.c:1731 msgid "The -p option only supported in raw mode\n" msgstr "" -#: misc/e2image.c:1735 +#: misc/e2image.c:1741 #, c-format msgid "%d blocks already contained the data to be copied\n" msgstr "" @@ -4782,7 +4862,7 @@ msgstr "" msgid "e2label: not an ext2 filesystem\n" msgstr "" -#: misc/e2label.c:97 misc/tune2fs.c:3137 misc/tune2fs.c:3460 +#: misc/e2label.c:97 misc/tune2fs.c:3138 misc/tune2fs.c:3465 #, c-format msgid "Warning: label too long, truncating.\n" msgstr "" @@ -4958,51 +5038,51 @@ msgstr "" msgid "Incomplete undo record; run e2fsck.\n" msgstr "" -#: misc/findsuper.c:110 +#: misc/findsuper.c:108 #, c-format msgid "Usage: findsuper device [skipbytes [startkb]]\n" msgstr "" -#: misc/findsuper.c:155 +#: misc/findsuper.c:153 #, c-format msgid "skipbytes should be a number, not %s\n" msgstr "" -#: misc/findsuper.c:162 +#: misc/findsuper.c:160 #, c-format msgid "skipbytes must be a multiple of the sector size\n" msgstr "" -#: misc/findsuper.c:169 +#: misc/findsuper.c:167 #, c-format msgid "startkb should be a number, not %s\n" msgstr "" -#: misc/findsuper.c:175 +#: misc/findsuper.c:173 #, c-format msgid "startkb should be positive, not %llu\n" msgstr "" -#: misc/findsuper.c:186 +#: misc/findsuper.c:184 #, c-format msgid "starting at %llu, with %u byte increments\n" msgstr "" -#: misc/findsuper.c:188 +#: misc/findsuper.c:186 #, c-format msgid "" "[*] probably superblock written in the ext3 journal superblock,\n" "\tso start/end/grp wrong\n" msgstr "" -#: misc/findsuper.c:190 +#: misc/findsuper.c:188 #, c-format msgid "" "byte_offset byte_start byte_end fs_blocks blksz grp mkfs/" "mount_time sb_uuid label\n" msgstr "" -#: misc/findsuper.c:264 +#: misc/findsuper.c:262 #, c-format msgid "" "\n" @@ -5067,92 +5147,92 @@ msgstr "" msgid "Couldn't allocate memory for filesystem types\n" msgstr "" -#: misc/fsck.c:894 +#: misc/fsck.c:895 #, c-format msgid "" "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass " "number\n" msgstr "" -#: misc/fsck.c:921 +#: misc/fsck.c:922 #, c-format msgid "fsck: cannot check %s: fsck.%s not found\n" msgstr "" -#: misc/fsck.c:977 +#: misc/fsck.c:978 msgid "Checking all file systems.\n" msgstr "" -#: misc/fsck.c:1068 +#: misc/fsck.c:1069 #, c-format msgid "--waiting-- (pass %d)\n" msgstr "" -#: misc/fsck.c:1088 +#: misc/fsck.c:1089 msgid "" "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n" msgstr "" -#: misc/fsck.c:1130 +#: misc/fsck.c:1131 #, c-format msgid "%s: too many devices\n" msgstr "" -#: misc/fsck.c:1163 misc/fsck.c:1249 +#: misc/fsck.c:1164 misc/fsck.c:1250 #, c-format msgid "%s: too many arguments\n" msgstr "" -#: misc/fuse2fs.c:3804 +#: misc/fuse2fs.c:3819 msgid "Mounting read-only.\n" msgstr "" -#: misc/fuse2fs.c:3828 +#: misc/fuse2fs.c:3843 #, c-format msgid "%s: Allowing users to allocate all blocks. This is dangerous!\n" msgstr "" -#: misc/fuse2fs.c:3842 misc/fuse2fs.c:3860 +#: misc/fuse2fs.c:3857 misc/fuse2fs.c:3875 #, c-format msgid "%s: %s.\n" msgstr "" -#: misc/fuse2fs.c:3843 misc/fuse2fs.c:3862 misc/tune2fs.c:3351 +#: misc/fuse2fs.c:3858 misc/fuse2fs.c:3877 misc/tune2fs.c:3352 #, c-format msgid "Please run e2fsck -fy %s.\n" msgstr "" -#: misc/fuse2fs.c:3853 +#: misc/fuse2fs.c:3868 #, c-format msgid "%s: mounting read-only without recovering journal\n" msgstr "" -#: misc/fuse2fs.c:3869 +#: misc/fuse2fs.c:3884 msgid "Journal needs recovery; running `e2fsck -E journal_only' is required.\n" msgstr "" -#: misc/fuse2fs.c:3877 +#: misc/fuse2fs.c:3892 #, c-format msgid "%s: Writing to the journal is not supported.\n" msgstr "" -#: misc/fuse2fs.c:3892 +#: misc/fuse2fs.c:3907 msgid "Warning: Mounting unchecked fs, running e2fsck is recommended.\n" msgstr "" -#: misc/fuse2fs.c:3896 +#: misc/fuse2fs.c:3911 msgid "Warning: Maximal mount count reached, running e2fsck is recommended.\n" msgstr "" -#: misc/fuse2fs.c:3901 +#: misc/fuse2fs.c:3916 msgid "Warning: Check time reached; running e2fsck is recommended.\n" msgstr "" -#: misc/fuse2fs.c:3905 +#: misc/fuse2fs.c:3920 msgid "Orphans detected; running e2fsck is recommended.\n" msgstr "" -#: misc/fuse2fs.c:3909 +#: misc/fuse2fs.c:3924 msgid "Errors detected; running e2fsck is required.\n" msgstr "" @@ -5180,7 +5260,7 @@ msgstr "" msgid "Couldn't allocate path variable in lsattr_dir_proc\n" msgstr "" -#: misc/mke2fs.c:133 +#: misc/mke2fs.c:134 #, c-format msgid "" "Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n" @@ -5194,35 +5274,35 @@ msgid "" "\t[-jnqvDFSV] device [blocks-count]\n" msgstr "" -#: misc/mke2fs.c:265 +#: misc/mke2fs.c:266 #, c-format msgid "Running command: %s\n" msgstr "" -#: misc/mke2fs.c:269 +#: misc/mke2fs.c:270 #, c-format msgid "while trying to run '%s'" msgstr "" -#: misc/mke2fs.c:276 +#: misc/mke2fs.c:277 msgid "while processing list of bad blocks from program" msgstr "" -#: misc/mke2fs.c:303 +#: misc/mke2fs.c:304 #, c-format msgid "Block %d in primary superblock/group descriptor area bad.\n" msgstr "" -#: misc/mke2fs.c:305 +#: misc/mke2fs.c:306 #, c-format msgid "Blocks %u through %u must be good in order to build a filesystem.\n" msgstr "" -#: misc/mke2fs.c:308 +#: misc/mke2fs.c:309 msgid "Aborting....\n" msgstr "" -#: misc/mke2fs.c:328 +#: misc/mke2fs.c:329 #, c-format msgid "" "Warning: the backup superblock/group descriptors at block %u contain\n" @@ -5230,268 +5310,278 @@ msgid "" "\n" msgstr "" -#: misc/mke2fs.c:347 misc/mke2fs.c:3398 +#: misc/mke2fs.c:348 misc/mke2fs.c:3422 msgid "while marking bad blocks as used" msgstr "" -#: misc/mke2fs.c:372 +#: misc/mke2fs.c:373 msgid "while writing reserved inodes" msgstr "" -#: misc/mke2fs.c:424 +#: misc/mke2fs.c:425 msgid "Writing inode tables: " msgstr "" -#: misc/mke2fs.c:456 misc/mke2fs.c:475 +#: misc/mke2fs.c:457 misc/mke2fs.c:476 #, c-format msgid "" "\n" "Could not write %d blocks in inode table starting at %llu: %s\n" msgstr "" -#: misc/mke2fs.c:485 misc/mke2fs.c:2938 misc/mke2fs.c:3358 +#: misc/mke2fs.c:486 misc/mke2fs.c:2962 misc/mke2fs.c:3382 msgid "done \n" msgstr "" -#: misc/mke2fs.c:500 +#: misc/mke2fs.c:502 msgid "while creating root dir" msgstr "" -#: misc/mke2fs.c:507 +#: misc/mke2fs.c:512 msgid "while reading root inode" msgstr "" -#: misc/mke2fs.c:519 +#: misc/mke2fs.c:532 msgid "while setting root inode ownership" msgstr "" -#: misc/mke2fs.c:537 +#: misc/mke2fs.c:550 msgid "while creating /lost+found" msgstr "" -#: misc/mke2fs.c:544 +#: misc/mke2fs.c:557 msgid "while looking up /lost+found" msgstr "" -#: misc/mke2fs.c:557 +#: misc/mke2fs.c:570 msgid "while expanding /lost+found" msgstr "" -#: misc/mke2fs.c:572 +#: misc/mke2fs.c:585 msgid "while setting bad block inode" msgstr "" -#: misc/mke2fs.c:599 +#: misc/mke2fs.c:612 #, c-format msgid "Out of memory erasing sectors %d-%d\n" msgstr "" -#: misc/mke2fs.c:609 +#: misc/mke2fs.c:622 #, c-format msgid "Warning: could not read block 0: %s\n" msgstr "" -#: misc/mke2fs.c:627 +#: misc/mke2fs.c:640 #, c-format msgid "Warning: could not erase sector %d: %s\n" msgstr "" -#: misc/mke2fs.c:643 +#: misc/mke2fs.c:656 msgid "while splitting the journal size" msgstr "" -#: misc/mke2fs.c:650 +#: misc/mke2fs.c:663 msgid "while initializing journal superblock" msgstr "" -#: misc/mke2fs.c:658 +#: misc/mke2fs.c:671 msgid "Zeroing journal device: " msgstr "" -#: misc/mke2fs.c:670 +#: misc/mke2fs.c:683 #, c-format msgid "while zeroing journal device (block %llu, count %d)" msgstr "" -#: misc/mke2fs.c:688 +#: misc/mke2fs.c:701 msgid "while writing journal superblock" msgstr "" -#: misc/mke2fs.c:702 +#: misc/mke2fs.c:715 #, c-format msgid "Creating filesystem with %llu %dk blocks and %u inodes\n" msgstr "" -#: misc/mke2fs.c:710 +#: misc/mke2fs.c:723 #, c-format msgid "" "warning: %llu blocks unused.\n" "\n" msgstr "" -#: misc/mke2fs.c:714 +#: misc/mke2fs.c:727 #, c-format msgid "Filesystem label=%.*s\n" msgstr "" -#: misc/mke2fs.c:718 +#: misc/mke2fs.c:731 #, c-format msgid "OS type: %s\n" msgstr "" -#: misc/mke2fs.c:720 +#: misc/mke2fs.c:733 #, c-format msgid "Block size=%u (log=%u)\n" msgstr "" -#: misc/mke2fs.c:723 +#: misc/mke2fs.c:736 #, c-format msgid "Cluster size=%u (log=%u)\n" msgstr "" -#: misc/mke2fs.c:727 +#: misc/mke2fs.c:740 #, c-format msgid "Fragment size=%u (log=%u)\n" msgstr "" -#: misc/mke2fs.c:729 +#: misc/mke2fs.c:742 #, c-format msgid "Stride=%u blocks, Stripe width=%u blocks\n" msgstr "" -#: misc/mke2fs.c:731 +#: misc/mke2fs.c:744 #, c-format msgid "%u inodes, %llu blocks\n" msgstr "" -#: misc/mke2fs.c:733 +#: misc/mke2fs.c:746 #, c-format msgid "%llu blocks (%2.2f%%) reserved for the super user\n" msgstr "" -#: misc/mke2fs.c:736 +#: misc/mke2fs.c:749 #, c-format msgid "First data block=%u\n" msgstr "" -#: misc/mke2fs.c:738 +#: misc/mke2fs.c:751 #, c-format msgid "Root directory owner=%u:%u\n" msgstr "" -#: misc/mke2fs.c:740 +#: misc/mke2fs.c:753 #, c-format msgid "Maximum filesystem blocks=%lu\n" msgstr "" -#: misc/mke2fs.c:744 +#: misc/mke2fs.c:757 #, c-format msgid "%u block groups\n" msgstr "" -#: misc/mke2fs.c:746 +#: misc/mke2fs.c:759 #, c-format msgid "%u block group\n" msgstr "" -#: misc/mke2fs.c:748 +#: misc/mke2fs.c:761 #, c-format msgid "%u blocks per group, %u clusters per group\n" msgstr "" -#: misc/mke2fs.c:751 +#: misc/mke2fs.c:764 #, c-format msgid "%u blocks per group, %u fragments per group\n" msgstr "" -#: misc/mke2fs.c:753 +#: misc/mke2fs.c:766 #, c-format msgid "%u inodes per group\n" msgstr "" -#: misc/mke2fs.c:762 +#: misc/mke2fs.c:775 #, c-format msgid "Filesystem UUID: %s\n" msgstr "" -#: misc/mke2fs.c:763 +#: misc/mke2fs.c:776 msgid "Superblock backups stored on blocks: " msgstr "" -#: misc/mke2fs.c:859 +#: misc/mke2fs.c:869 #, c-format msgid "%s requires '-O 64bit'\n" msgstr "" -#: misc/mke2fs.c:865 +#: misc/mke2fs.c:875 #, c-format msgid "'%s' must be before 'resize=%u'\n" msgstr "" -#: misc/mke2fs.c:878 +#: misc/mke2fs.c:888 #, c-format msgid "Invalid desc_size: '%s'\n" msgstr "" -#: misc/mke2fs.c:892 +#: misc/mke2fs.c:902 #, c-format msgid "Invalid hash seed: %s\n" msgstr "" -#: misc/mke2fs.c:904 +#: misc/mke2fs.c:914 #, c-format msgid "Invalid offset: %s\n" msgstr "" -#: misc/mke2fs.c:918 misc/tune2fs.c:2288 +#: misc/mke2fs.c:928 misc/tune2fs.c:2288 #, c-format msgid "Invalid mmp_update_interval: %s\n" msgstr "" -#: misc/mke2fs.c:935 +#: misc/mke2fs.c:945 #, c-format msgid "Invalid # of backup superblocks: %s\n" msgstr "" -#: misc/mke2fs.c:957 +#: misc/mke2fs.c:967 #, c-format msgid "Invalid stride parameter: %s\n" msgstr "" -#: misc/mke2fs.c:972 +#: misc/mke2fs.c:982 #, c-format msgid "Invalid stripe-width parameter: %s\n" msgstr "" -#: misc/mke2fs.c:995 +#: misc/mke2fs.c:1005 #, c-format msgid "Invalid resize parameter: %s\n" msgstr "" -#: misc/mke2fs.c:1002 +#: misc/mke2fs.c:1012 msgid "The resize maximum must be greater than the filesystem size.\n" msgstr "" -#: misc/mke2fs.c:1026 +#: misc/mke2fs.c:1036 msgid "On-line resizing not supported with revision 0 filesystems\n" msgstr "" -#: misc/mke2fs.c:1057 misc/mke2fs.c:1066 +#: misc/mke2fs.c:1053 +#, c-format +msgid "bad revision level - %s" +msgstr "" + +#: misc/mke2fs.c:1058 +#, c-format +msgid "while trying to create revision %d" +msgstr "" + +#: misc/mke2fs.c:1085 misc/mke2fs.c:1094 #, c-format msgid "Invalid root_owner: '%s'\n" msgstr "" -#: misc/mke2fs.c:1111 +#: misc/mke2fs.c:1143 #, c-format msgid "Invalid encoding: %s" msgstr "" -#: misc/mke2fs.c:1133 misc/tune2fs.c:2423 +#: misc/mke2fs.c:1165 misc/tune2fs.c:2423 #, c-format msgid "Invalid size of orphan file %s\n" msgstr "" -#: misc/mke2fs.c:1144 +#: misc/mke2fs.c:1176 #, c-format msgid "" "\n" @@ -5511,9 +5601,11 @@ msgid "" "\tlazy_itable_init=<0 to disable, 1 to enable>\n" "\tlazy_journal_init=<0 to disable, 1 to enable>\n" "\troot_owner=:\n" +"\troot_perms=\n" "\ttest_fs\n" "\tdiscard\n" "\tnodiscard\n" +"\trevision=\n" "\tencoding=\n" "\tencoding_flags=\n" "\tquotatype=\n" @@ -5521,7 +5613,7 @@ msgid "" "\n" msgstr "" -#: misc/mke2fs.c:1172 +#: misc/mke2fs.c:1206 #, c-format msgid "" "\n" @@ -5529,52 +5621,52 @@ msgid "" "\n" msgstr "" -#: misc/mke2fs.c:1183 misc/tune2fs.c:2439 +#: misc/mke2fs.c:1217 misc/tune2fs.c:2439 #, c-format msgid "error: Invalid encoding flag: %s\n" msgstr "" -#: misc/mke2fs.c:1189 misc/tune2fs.c:2448 +#: misc/mke2fs.c:1223 misc/tune2fs.c:2448 #, c-format msgid "" "error: An encoding must be explicitly specified when passing encoding-flags\n" msgstr "" -#: misc/mke2fs.c:1240 +#: misc/mke2fs.c:1274 #, c-format msgid "" "Syntax error in mke2fs config file (%s, line #%d)\n" "\t%s\n" msgstr "" -#: misc/mke2fs.c:1253 misc/tune2fs.c:1182 +#: misc/mke2fs.c:1287 misc/tune2fs.c:1182 #, c-format msgid "Invalid filesystem option set: %s\n" msgstr "" -#: misc/mke2fs.c:1265 misc/tune2fs.c:459 +#: misc/mke2fs.c:1299 misc/tune2fs.c:459 #, c-format msgid "Invalid mount option set: %s\n" msgstr "" -#: misc/mke2fs.c:1401 +#: misc/mke2fs.c:1435 #, c-format msgid "" "\n" "Your mke2fs.conf file does not define the %s filesystem type.\n" msgstr "" -#: misc/mke2fs.c:1405 +#: misc/mke2fs.c:1439 msgid "" "You probably need to install an updated mke2fs.conf file.\n" "\n" msgstr "" -#: misc/mke2fs.c:1409 +#: misc/mke2fs.c:1443 msgid "Aborting...\n" msgstr "" -#: misc/mke2fs.c:1450 +#: misc/mke2fs.c:1484 #, c-format msgid "" "\n" @@ -5582,164 +5674,169 @@ msgid "" "\n" msgstr "" -#: misc/mke2fs.c:1640 +#: misc/mke2fs.c:1673 msgid "Couldn't allocate memory for new PATH.\n" msgstr "" -#: misc/mke2fs.c:1680 +#: misc/mke2fs.c:1713 #, c-format msgid "Couldn't init profile successfully (error: %ld).\n" msgstr "" -#: misc/mke2fs.c:1713 +#: misc/mke2fs.c:1746 #, c-format msgid "invalid block size - %s" msgstr "" -#: misc/mke2fs.c:1717 +#: misc/mke2fs.c:1750 #, c-format msgid "Warning: blocksize %d not usable on most systems.\n" msgstr "" -#: misc/mke2fs.c:1733 +#: misc/mke2fs.c:1766 #, c-format msgid "invalid cluster size - %s" msgstr "" -#: misc/mke2fs.c:1746 +#: misc/mke2fs.c:1779 msgid "'-R' is deprecated, use '-E' instead" msgstr "" -#: misc/mke2fs.c:1760 misc/tune2fs.c:2014 +#: misc/mke2fs.c:1793 misc/tune2fs.c:2014 #, c-format msgid "bad error behavior - %s" msgstr "" -#: misc/mke2fs.c:1772 +#: misc/mke2fs.c:1805 msgid "Illegal number for blocks per group" msgstr "" -#: misc/mke2fs.c:1777 +#: misc/mke2fs.c:1810 msgid "blocks per group must be multiple of 8" msgstr "" -#: misc/mke2fs.c:1785 +#: misc/mke2fs.c:1818 msgid "Illegal number for flex_bg size" msgstr "" -#: misc/mke2fs.c:1791 +#: misc/mke2fs.c:1824 msgid "flex_bg size must be a power of 2" msgstr "" -#: misc/mke2fs.c:1796 +#: misc/mke2fs.c:1829 #, c-format msgid "flex_bg size (%lu) must be less than or equal to 2^31" msgstr "" -#: misc/mke2fs.c:1806 +#: misc/mke2fs.c:1839 #, c-format msgid "invalid inode ratio %s (min %d/max %d)" msgstr "" -#: misc/mke2fs.c:1816 +#: misc/mke2fs.c:1849 #, c-format msgid "invalid inode size - %s" msgstr "" -#: misc/mke2fs.c:1831 +#: misc/mke2fs.c:1864 msgid "" "Warning: -K option is deprecated and should not be used anymore. Use '-E " "nodiscard' extended option instead!\n" msgstr "" -#: misc/mke2fs.c:1842 +#: misc/mke2fs.c:1875 msgid "in malloc for bad_blocks_filename" msgstr "" -#: misc/mke2fs.c:1851 +#: misc/mke2fs.c:1884 #, c-format msgid "" "Warning: label too long; will be truncated to '%s'\n" "\n" msgstr "" -#: misc/mke2fs.c:1860 +#: misc/mke2fs.c:1893 #, c-format msgid "invalid reserved blocks percent - %s" msgstr "" -#: misc/mke2fs.c:1875 +#: misc/mke2fs.c:1908 #, c-format msgid "bad num inodes - %s" msgstr "" -#: misc/mke2fs.c:1888 +#: misc/mke2fs.c:1921 msgid "while allocating fs_feature string" msgstr "" -#: misc/mke2fs.c:1905 -#, c-format -msgid "bad revision level - %s" +#: misc/mke2fs.c:1936 +msgid "" +"the -r option has been removed.\n" +"\n" +"If you really need compatibility with pre-1995 Linux systems, use the\n" +"command-line option \"-E revision=0\".\n" msgstr "" -#: misc/mke2fs.c:1910 -#, c-format -msgid "while trying to create revision %d" +#: misc/mke2fs.c:1942 +msgid "" +"the -s option has been removed.\n" +"\n" +"Use the -O option to set or clear the sparse_super feature.\n" msgstr "" -#: misc/mke2fs.c:1924 +#: misc/mke2fs.c:1951 msgid "The -t option may only be used once" msgstr "" -#: misc/mke2fs.c:1932 +#: misc/mke2fs.c:1959 msgid "The -T option may only be used once" msgstr "" -#: misc/mke2fs.c:1988 misc/mke2fs.c:3481 +#: misc/mke2fs.c:2015 misc/mke2fs.c:3505 #, c-format msgid "while trying to open journal device %s\n" msgstr "" -#: misc/mke2fs.c:1994 +#: misc/mke2fs.c:2021 #, c-format msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n" msgstr "" -#: misc/mke2fs.c:2000 +#: misc/mke2fs.c:2027 #, c-format msgid "Using journal device's blocksize: %d\n" msgstr "" -#: misc/mke2fs.c:2011 +#: misc/mke2fs.c:2038 #, c-format msgid "invalid blocks '%s' on device '%s'" msgstr "" -#: misc/mke2fs.c:2031 +#: misc/mke2fs.c:2058 msgid "filesystem" msgstr "" -#: misc/mke2fs.c:2046 lib/support/plausible.c:184 +#: misc/mke2fs.c:2073 lib/support/plausible.c:184 #, c-format msgid "The file %s does not exist and no size was specified.\n" msgstr "" -#: misc/mke2fs.c:2058 lib/support/plausible.c:192 +#: misc/mke2fs.c:2085 lib/support/plausible.c:192 #, c-format msgid "Creating regular file %s\n" msgstr "" -#: misc/mke2fs.c:2063 resize/main.c:514 +#: misc/mke2fs.c:2090 resize/main.c:512 msgid "while trying to determine filesystem size" msgstr "" -#: misc/mke2fs.c:2069 +#: misc/mke2fs.c:2096 msgid "" "Couldn't determine device size; you must specify\n" "the size of the filesystem\n" msgstr "" -#: misc/mke2fs.c:2076 +#: misc/mke2fs.c:2103 msgid "" "Device size reported to be zero. Invalid partition specified, or\n" "\tpartition table wasn't reread after running fdisk, due to\n" @@ -5747,149 +5844,148 @@ msgid "" "\tto re-read your partition table.\n" msgstr "" -#: misc/mke2fs.c:2093 +#: misc/mke2fs.c:2120 msgid "Filesystem larger than apparent device size." msgstr "" -#: misc/mke2fs.c:2116 +#: misc/mke2fs.c:2143 msgid "Failed to parse fs types list\n" msgstr "" -#: misc/mke2fs.c:2182 +#: misc/mke2fs.c:2208 msgid "The HURD does not support the filetype feature.\n" msgstr "" -#: misc/mke2fs.c:2187 +#: misc/mke2fs.c:2213 msgid "The HURD does not support the huge_file feature.\n" msgstr "" -#: misc/mke2fs.c:2192 +#: misc/mke2fs.c:2218 msgid "The HURD does not support the metadata_csum feature.\n" msgstr "" -#: misc/mke2fs.c:2197 +#: misc/mke2fs.c:2223 msgid "The HURD does not support the ea_inode feature.\n" msgstr "" -#: misc/mke2fs.c:2207 +#: misc/mke2fs.c:2233 msgid "while trying to determine hardware sector size" msgstr "" -#: misc/mke2fs.c:2213 +#: misc/mke2fs.c:2239 msgid "while trying to determine physical sector size" msgstr "" -#: misc/mke2fs.c:2245 +#: misc/mke2fs.c:2271 msgid "while setting blocksize; too small for device\n" msgstr "" -#: misc/mke2fs.c:2250 +#: misc/mke2fs.c:2276 #, c-format msgid "" "Warning: specified blocksize %d is less than device physical sectorsize %d\n" msgstr "" -#: misc/mke2fs.c:2274 +#: misc/mke2fs.c:2300 #, c-format msgid "" "%s: Size of device (0x%llx blocks) %s too big to be expressed\n" "\tin 32 bits using a blocksize of %d.\n" msgstr "" -#: misc/mke2fs.c:2288 +#: misc/mke2fs.c:2314 #, c-format msgid "" "%s: Size of device (0x%llx blocks) %s too big to create\n" "\ta filesystem using a blocksize of %d.\n" msgstr "" -#: misc/mke2fs.c:2310 +#: misc/mke2fs.c:2336 msgid "fs_types for mke2fs.conf resolution: " msgstr "" -#: misc/mke2fs.c:2317 -msgid "Filesystem features not supported with revision 0 filesystems\n" -msgstr "" - -#: misc/mke2fs.c:2325 -msgid "Sparse superblocks not supported with revision 0 filesystems\n" -msgstr "" - -#: misc/mke2fs.c:2335 -msgid "Journals not supported with revision 0 filesystems\n" -msgstr "" - -#: misc/mke2fs.c:2348 -#, c-format +#: misc/mke2fs.c:2349 msgid "invalid reserved blocks percent - %lf" msgstr "" -#: misc/mke2fs.c:2365 +#: misc/mke2fs.c:2366 msgid "" "Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to " "rectify.\n" msgstr "" -#: misc/mke2fs.c:2385 +#: misc/mke2fs.c:2386 msgid "The cluster size may not be smaller than the block size.\n" msgstr "" -#: misc/mke2fs.c:2391 +#: misc/mke2fs.c:2392 msgid "specifying a cluster size requires the bigalloc feature" msgstr "" -#: misc/mke2fs.c:2411 +#: misc/mke2fs.c:2412 #, c-format msgid "warning: Unable to get device geometry for %s\n" msgstr "" -#: misc/mke2fs.c:2423 +#: misc/mke2fs.c:2424 #, c-format msgid "%s alignment is offset by %lu bytes.\n" msgstr "" -#: misc/mke2fs.c:2425 +#: misc/mke2fs.c:2426 #, c-format msgid "" "This may result in very poor performance, (re)-partitioning suggested.\n" msgstr "" -#: misc/mke2fs.c:2431 +#: misc/mke2fs.c:2432 #, c-format msgid "" "%s is capable of DAX but current block size %u is different from system page " "size %u so filesystem will not support DAX.\n" msgstr "" -#: misc/mke2fs.c:2455 +#: misc/mke2fs.c:2456 #, c-format msgid "%d-byte blocks too big for system (max %d)" msgstr "" -#: misc/mke2fs.c:2459 +#: misc/mke2fs.c:2460 #, c-format msgid "" "Warning: %d-byte blocks too big for system (max %d), forced to continue\n" msgstr "" -#: misc/mke2fs.c:2467 +#: misc/mke2fs.c:2468 #, c-format msgid "" "Suggestion: Use Linux kernel >= 3.18 for improved stability of the metadata " "and journal checksum features.\n" msgstr "" -#: misc/mke2fs.c:2513 +#: misc/mke2fs.c:2514 #, c-format msgid "Unknown filename encoding from profile: %s" msgstr "" -#: misc/mke2fs.c:2524 +#: misc/mke2fs.c:2525 #, c-format msgid "Unknown encoding flags from profile: %s" msgstr "" #: misc/mke2fs.c:2549 +msgid "Filesystem features not supported with revision 0 filesystems\n" +msgstr "" + +#: misc/mke2fs.c:2554 +msgid "Journals not supported with revision 0 filesystems\n" +msgstr "" + +#: misc/mke2fs.c:2559 +msgid "Inode size incompatible with revision 0 filesystems\n" +msgstr "" + +#: misc/mke2fs.c:2572 #, c-format msgid "" "\n" @@ -5899,66 +5995,66 @@ msgid "" "\n" msgstr "" -#: misc/mke2fs.c:2564 +#: misc/mke2fs.c:2587 #, c-format msgid "%d byte inodes are too small for project quota" msgstr "" -#: misc/mke2fs.c:2586 +#: misc/mke2fs.c:2609 msgid "Can't support bigalloc feature without extents feature" msgstr "" -#: misc/mke2fs.c:2593 +#: misc/mke2fs.c:2616 msgid "" "The resize_inode and meta_bg features are not compatible.\n" "They can not be both enabled simultaneously.\n" msgstr "" -#: misc/mke2fs.c:2602 +#: misc/mke2fs.c:2625 msgid "" "\n" "Warning: bigalloc file systems with a cluster size greater than\n" "16 times the block size is considered experimental\n" msgstr "" -#: misc/mke2fs.c:2614 +#: misc/mke2fs.c:2637 msgid "reserved online resize blocks not supported on non-sparse filesystem" msgstr "" -#: misc/mke2fs.c:2623 +#: misc/mke2fs.c:2646 msgid "blocks per group count out of range" msgstr "" -#: misc/mke2fs.c:2645 +#: misc/mke2fs.c:2668 msgid "Flex_bg feature not enabled, so flex_bg size may not be specified" msgstr "" -#: misc/mke2fs.c:2657 +#: misc/mke2fs.c:2680 #, c-format msgid "invalid inode size %d (min %d/max %d)" msgstr "" -#: misc/mke2fs.c:2672 +#: misc/mke2fs.c:2695 #, c-format msgid "%d byte inodes are too small for inline data; specify larger size" msgstr "" -#: misc/mke2fs.c:2687 +#: misc/mke2fs.c:2710 #, c-format msgid "128-byte inodes cannot handle dates beyond 2038 and are deprecated\n" msgstr "" -#: misc/mke2fs.c:2698 +#: misc/mke2fs.c:2721 #, c-format msgid "too many inodes (%llu), raise inode ratio?" msgstr "" -#: misc/mke2fs.c:2706 +#: misc/mke2fs.c:2729 #, c-format msgid "too many inodes (%llu), specify < 2^32 inodes" msgstr "" -#: misc/mke2fs.c:2720 +#: misc/mke2fs.c:2743 #, c-format msgid "" "inode_size (%u) * inodes_count (%u) too big for a\n" @@ -5966,175 +6062,175 @@ msgid "" "\tor lower inode count (-N).\n" msgstr "" -#: misc/mke2fs.c:2917 +#: misc/mke2fs.c:2941 msgid "Discarding device blocks: " msgstr "" -#: misc/mke2fs.c:2933 +#: misc/mke2fs.c:2957 msgid "failed - " msgstr "" -#: misc/mke2fs.c:2992 +#: misc/mke2fs.c:3016 msgid "while initializing quota context" msgstr "" -#: misc/mke2fs.c:2999 +#: misc/mke2fs.c:3023 msgid "while writing quota inodes" msgstr "" -#: misc/mke2fs.c:3024 +#: misc/mke2fs.c:3048 #, c-format msgid "bad error behavior in profile - %s" msgstr "" -#: misc/mke2fs.c:3103 +#: misc/mke2fs.c:3127 msgid "in malloc for android_sparse_params" msgstr "" -#: misc/mke2fs.c:3117 +#: misc/mke2fs.c:3141 msgid "while setting up superblock" msgstr "" -#: misc/mke2fs.c:3133 +#: misc/mke2fs.c:3157 msgid "" "Extents are not enabled. The file extent tree can be checksummed, whereas " "block maps cannot. Not enabling extents reduces the coverage of metadata " "checksumming. Pass -O extents to rectify.\n" msgstr "" -#: misc/mke2fs.c:3140 +#: misc/mke2fs.c:3164 msgid "" "64-bit filesystem support is not enabled. The larger fields afforded by " "this feature enable full-strength checksumming. Pass -O 64bit to rectify.\n" msgstr "" -#: misc/mke2fs.c:3148 +#: misc/mke2fs.c:3172 msgid "The metadata_csum_seed feature requires the metadata_csum feature.\n" msgstr "" -#: misc/mke2fs.c:3169 +#: misc/mke2fs.c:3193 msgid "" "Assuming the storage device is prezeroed - skipping inode table and journal " "wipe\n" msgstr "" -#: misc/mke2fs.c:3184 +#: misc/mke2fs.c:3208 msgid "Discard succeeded and will return 0s - skipping inode table wipe\n" msgstr "" -#: misc/mke2fs.c:3283 +#: misc/mke2fs.c:3307 #, c-format msgid "unknown os - %s" msgstr "" -#: misc/mke2fs.c:3346 +#: misc/mke2fs.c:3370 msgid "Allocating group tables: " msgstr "" -#: misc/mke2fs.c:3354 +#: misc/mke2fs.c:3378 msgid "while trying to allocate filesystem tables" msgstr "" -#: misc/mke2fs.c:3369 +#: misc/mke2fs.c:3393 msgid "while unmarking bad blocks" msgstr "" -#: misc/mke2fs.c:3380 +#: misc/mke2fs.c:3404 msgid "" "\n" "\twhile converting subcluster bitmap" msgstr "" -#: misc/mke2fs.c:3389 +#: misc/mke2fs.c:3413 msgid "while calculating overhead" msgstr "" -#: misc/mke2fs.c:3408 +#: misc/mke2fs.c:3432 #, c-format msgid "%s may be further corrupted by superblock rewrite\n" msgstr "" -#: misc/mke2fs.c:3449 +#: misc/mke2fs.c:3473 #, c-format msgid "while zeroing block %llu at end of filesystem" msgstr "" -#: misc/mke2fs.c:3462 +#: misc/mke2fs.c:3486 msgid "while reserving blocks for online resize" msgstr "" -#: misc/mke2fs.c:3474 misc/tune2fs.c:1710 +#: misc/mke2fs.c:3498 misc/tune2fs.c:1710 msgid "journal" msgstr "" -#: misc/mke2fs.c:3486 +#: misc/mke2fs.c:3510 #, c-format msgid "Adding journal to device %s: " msgstr "" -#: misc/mke2fs.c:3493 +#: misc/mke2fs.c:3517 #, c-format msgid "" "\n" "\twhile trying to add journal to device %s" msgstr "" -#: misc/mke2fs.c:3498 misc/mke2fs.c:3531 misc/mke2fs.c:3590 +#: misc/mke2fs.c:3522 misc/mke2fs.c:3555 misc/mke2fs.c:3614 #: misc/mk_hugefiles.c:486 misc/tune2fs.c:1739 misc/tune2fs.c:1761 msgid "done\n" msgstr "" -#: misc/mke2fs.c:3505 +#: misc/mke2fs.c:3529 msgid "Skipping journal creation in super-only mode\n" msgstr "" -#: misc/mke2fs.c:3518 +#: misc/mke2fs.c:3542 #, c-format msgid "Creating journal (%u blocks): " msgstr "" -#: misc/mke2fs.c:3527 +#: misc/mke2fs.c:3551 msgid "" "\n" "\twhile trying to create journal" msgstr "" -#: misc/mke2fs.c:3539 misc/tune2fs.c:1297 +#: misc/mke2fs.c:3563 misc/tune2fs.c:1297 msgid "" "\n" "Error while enabling multiple mount protection feature." msgstr "" -#: misc/mke2fs.c:3544 +#: misc/mke2fs.c:3568 #, c-format msgid "Multiple mount protection is enabled with update interval %d seconds.\n" msgstr "" -#: misc/mke2fs.c:3559 +#: misc/mke2fs.c:3583 msgid "cannot set orphan_file feature without a journal." msgstr "" -#: misc/mke2fs.c:3570 misc/tune2fs.c:3517 +#: misc/mke2fs.c:3594 misc/tune2fs.c:3522 msgid "while creating orphan file" msgstr "" -#: misc/mke2fs.c:3581 +#: misc/mke2fs.c:3605 msgid "Copying files into the device: " msgstr "" -#: misc/mke2fs.c:3587 +#: misc/mke2fs.c:3611 msgid "while populating file system" msgstr "" -#: misc/mke2fs.c:3594 +#: misc/mke2fs.c:3618 msgid "Writing superblocks and filesystem accounting information: " msgstr "" -#: misc/mke2fs.c:3601 misc/tune2fs.c:3765 +#: misc/mke2fs.c:3625 misc/tune2fs.c:3770 msgid "while writing out and closing file system" msgstr "" -#: misc/mke2fs.c:3604 +#: misc/mke2fs.c:3628 msgid "" "done\n" "\n" @@ -6239,19 +6335,19 @@ msgstr "" msgid "while trying to open external journal" msgstr "" -#: misc/tune2fs.c:327 misc/tune2fs.c:3051 +#: misc/tune2fs.c:327 misc/tune2fs.c:3052 #, c-format msgid "%s is not a journal device.\n" msgstr "" -#: misc/tune2fs.c:336 misc/tune2fs.c:3060 +#: misc/tune2fs.c:336 misc/tune2fs.c:3061 #, c-format msgid "" "Journal superblock is corrupted, nr_users\n" "is too high (%d).\n" msgstr "" -#: misc/tune2fs.c:343 misc/tune2fs.c:3067 +#: misc/tune2fs.c:343 misc/tune2fs.c:3068 msgid "Filesystem's UUID not found on journal device.\n" msgstr "" @@ -6346,7 +6442,7 @@ msgid "" "orphan_file feature.\n" msgstr "" -#: misc/tune2fs.c:1241 misc/tune2fs.c:3510 +#: misc/tune2fs.c:1241 misc/tune2fs.c:3515 msgid "while loading bitmaps" msgstr "" @@ -6711,80 +6807,80 @@ msgid "" "\tencoding_flags=\n" msgstr "" -#: misc/tune2fs.c:2869 +#: misc/tune2fs.c:2870 msgid "Failed to read inode bitmap\n" msgstr "" -#: misc/tune2fs.c:2874 +#: misc/tune2fs.c:2875 msgid "Failed to read block bitmap\n" msgstr "" -#: misc/tune2fs.c:2891 resize/resize2fs.c:1368 +#: misc/tune2fs.c:2892 resize/resize2fs.c:1368 msgid "blocks to be moved" msgstr "" -#: misc/tune2fs.c:2894 +#: misc/tune2fs.c:2895 msgid "Failed to allocate block bitmap when increasing inode size\n" msgstr "" -#: misc/tune2fs.c:2900 +#: misc/tune2fs.c:2901 msgid "Not enough space to increase inode size \n" msgstr "" -#: misc/tune2fs.c:2905 +#: misc/tune2fs.c:2906 msgid "Failed to relocate blocks during inode resize \n" msgstr "" -#: misc/tune2fs.c:2937 +#: misc/tune2fs.c:2938 msgid "" "Error in resizing the inode size.\n" "Run e2undo to undo the file system changes. \n" msgstr "" -#: misc/tune2fs.c:3125 +#: misc/tune2fs.c:3126 msgid "while trying to get fs label" msgstr "" -#: misc/tune2fs.c:3147 +#: misc/tune2fs.c:3148 msgid "while trying to set fs label" msgstr "" -#: misc/tune2fs.c:3237 +#: misc/tune2fs.c:3238 msgid "" "If you are sure the filesystem is not in use on any node, run:\n" "'tune2fs -f -E clear_mmp {device}'\n" msgstr "" -#: misc/tune2fs.c:3244 +#: misc/tune2fs.c:3245 #, c-format msgid "" "MMP block magic is bad. Try to fix it by running:\n" "'e2fsck -f %s'\n" msgstr "" -#: misc/tune2fs.c:3256 +#: misc/tune2fs.c:3257 msgid "Cannot modify a journal device.\n" msgstr "" -#: misc/tune2fs.c:3269 +#: misc/tune2fs.c:3270 #, c-format msgid "The inode size is already %lu\n" msgstr "" -#: misc/tune2fs.c:3276 +#: misc/tune2fs.c:3277 msgid "Shrinking inode size is not supported\n" msgstr "" -#: misc/tune2fs.c:3281 +#: misc/tune2fs.c:3282 #, c-format msgid "Invalid inode size %lu (max %d)\n" msgstr "" -#: misc/tune2fs.c:3287 +#: misc/tune2fs.c:3288 msgid "Resizing inodes could take some time." msgstr "" -#: misc/tune2fs.c:3337 +#: misc/tune2fs.c:3338 #, c-format msgid "" "Warning: The journal is dirty. You may wish to replay the journal like:\n" @@ -6795,162 +6891,167 @@ msgid "" "by journal recovery.\n" msgstr "" -#: misc/tune2fs.c:3346 +#: misc/tune2fs.c:3347 #, c-format msgid "Recovering journal.\n" msgstr "" -#: misc/tune2fs.c:3370 +#: misc/tune2fs.c:3371 #, c-format msgid "Setting maximal mount count to %d\n" msgstr "" -#: misc/tune2fs.c:3376 +#: misc/tune2fs.c:3377 #, c-format msgid "Setting current mount count to %d\n" msgstr "" -#: misc/tune2fs.c:3381 +#: misc/tune2fs.c:3382 #, c-format msgid "Setting error behavior to %d\n" msgstr "" -#: misc/tune2fs.c:3386 +#: misc/tune2fs.c:3388 #, c-format msgid "Setting reserved blocks gid to %lu\n" msgstr "" -#: misc/tune2fs.c:3391 +#: misc/tune2fs.c:3390 +#, c-format +msgid "Reserved blocks gid already set to %lu\n" +msgstr "" + +#: misc/tune2fs.c:3396 #, c-format msgid "interval between checks is too big (%lu)" msgstr "" -#: misc/tune2fs.c:3398 +#: misc/tune2fs.c:3403 #, c-format msgid "Setting interval between checks to %lu seconds\n" msgstr "" -#: misc/tune2fs.c:3405 +#: misc/tune2fs.c:3410 #, c-format msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n" msgstr "" -#: misc/tune2fs.c:3412 +#: misc/tune2fs.c:3417 #, c-format msgid "reserved blocks count is too big (%llu)" msgstr "" -#: misc/tune2fs.c:3419 +#: misc/tune2fs.c:3424 #, c-format msgid "Setting reserved blocks count to %llu\n" msgstr "" -#: misc/tune2fs.c:3424 +#: misc/tune2fs.c:3429 msgid "" "\n" "The filesystem already has sparse superblocks.\n" msgstr "" -#: misc/tune2fs.c:3427 +#: misc/tune2fs.c:3432 msgid "" "\n" "Setting the sparse superblock flag not supported\n" "for filesystems with the meta_bg feature enabled.\n" msgstr "" -#: misc/tune2fs.c:3437 +#: misc/tune2fs.c:3442 #, c-format msgid "" "\n" "Sparse superblock flag set. %s" msgstr "" -#: misc/tune2fs.c:3442 +#: misc/tune2fs.c:3447 msgid "" "\n" "Clearing the sparse superblock flag not supported.\n" msgstr "" -#: misc/tune2fs.c:3450 +#: misc/tune2fs.c:3455 #, c-format msgid "Setting time filesystem last checked to %s\n" msgstr "" -#: misc/tune2fs.c:3456 +#: misc/tune2fs.c:3461 #, c-format msgid "Setting reserved blocks uid to %lu\n" msgstr "" -#: misc/tune2fs.c:3488 +#: misc/tune2fs.c:3493 msgid "Error in using clear_mmp. It must be used with -f\n" msgstr "" -#: misc/tune2fs.c:3525 +#: misc/tune2fs.c:3530 msgid "" "The quota feature may only be changed when the filesystem is unmounted and " "not in use.\n" msgstr "" -#: misc/tune2fs.c:3544 +#: misc/tune2fs.c:3549 msgid "" "Cannot change the UUID of this filesystem because it has the stable_inodes " "feature flag.\n" msgstr "" -#: misc/tune2fs.c:3554 +#: misc/tune2fs.c:3559 msgid "Setting the UUID on this filesystem could take some time." msgstr "" -#: misc/tune2fs.c:3571 +#: misc/tune2fs.c:3576 msgid "The UUID may only be changed when the filesystem is unmounted.\n" msgstr "" -#: misc/tune2fs.c:3574 +#: misc/tune2fs.c:3579 msgid "" "If you only use kernels newer than v4.4, run 'tune2fs -O metadata_csum_seed' " "and re-run this command.\n" msgstr "" -#: misc/tune2fs.c:3624 +#: misc/tune2fs.c:3629 msgid "Invalid UUID format\n" msgstr "" -#: misc/tune2fs.c:3658 +#: misc/tune2fs.c:3663 msgid "Need to update journal superblock.\n" msgstr "" -#: misc/tune2fs.c:3678 +#: misc/tune2fs.c:3683 msgid "" "The inode size may only be changed when the filesystem is unmounted and not " "in use.\n" msgstr "" -#: misc/tune2fs.c:3685 +#: misc/tune2fs.c:3690 msgid "" "Changing the inode size not supported for filesystems with the flex_bg\n" "feature enabled.\n" msgstr "" -#: misc/tune2fs.c:3703 +#: misc/tune2fs.c:3708 #, c-format msgid "Setting inode size %lu\n" msgstr "" -#: misc/tune2fs.c:3707 +#: misc/tune2fs.c:3712 msgid "Failed to change inode size\n" msgstr "" -#: misc/tune2fs.c:3727 +#: misc/tune2fs.c:3732 #, c-format msgid "Setting stride size to %d\n" msgstr "" -#: misc/tune2fs.c:3732 +#: misc/tune2fs.c:3737 #, c-format msgid "Setting stripe width to %d\n" msgstr "" -#: misc/tune2fs.c:3739 +#: misc/tune2fs.c:3744 #, c-format msgid "Setting extended default mount options to '%s'\n" msgstr "" @@ -7223,51 +7324,51 @@ msgid "" "\n" msgstr "" -#: resize/main.c:374 +#: resize/main.c:372 #, c-format msgid "while opening %s" msgstr "" -#: resize/main.c:382 +#: resize/main.c:380 #, c-format msgid "while getting stat information for %s" msgstr "" -#: resize/main.c:465 +#: resize/main.c:463 #, c-format msgid "" "Please run 'e2fsck -f %s' first.\n" "\n" msgstr "" -#: resize/main.c:484 +#: resize/main.c:482 #, c-format msgid "Estimated minimum size of the filesystem: %llu\n" msgstr "" -#: resize/main.c:524 +#: resize/main.c:522 #, c-format msgid "Invalid new size: %s\n" msgstr "" -#: resize/main.c:543 +#: resize/main.c:541 msgid "New size too large to be expressed in 32 bits\n" msgstr "" -#: resize/main.c:562 +#: resize/main.c:564 msgid "New size results in too many block group descriptors.\n" msgstr "" -#: resize/main.c:569 +#: resize/main.c:572 #, c-format msgid "New size smaller than minimum (%llu)\n" msgstr "" -#: resize/main.c:576 +#: resize/main.c:579 msgid "Invalid stride length" msgstr "" -#: resize/main.c:600 +#: resize/main.c:603 #, c-format msgid "" "The containing partition (or device) is only %llu (%dk) blocks.\n" @@ -7275,89 +7376,89 @@ msgid "" "\n" msgstr "" -#: resize/main.c:607 +#: resize/main.c:610 #, c-format msgid "Cannot set and unset 64bit feature.\n" msgstr "" -#: resize/main.c:611 +#: resize/main.c:614 #, c-format msgid "" "Cannot change the 64bit feature on a filesystem that is larger than 2^32 " "blocks.\n" msgstr "" -#: resize/main.c:617 +#: resize/main.c:620 #, c-format msgid "Cannot change the 64bit feature while the filesystem is mounted.\n" msgstr "" -#: resize/main.c:623 +#: resize/main.c:626 #, c-format msgid "" "Please enable the extents feature with tune2fs before enabling the 64bit " "feature.\n" msgstr "" -#: resize/main.c:631 +#: resize/main.c:634 #, c-format msgid "" "The filesystem is already %llu (%dk) blocks long. Nothing to do!\n" "\n" msgstr "" -#: resize/main.c:641 +#: resize/main.c:644 #, c-format msgid "The filesystem is already 64-bit.\n" msgstr "" -#: resize/main.c:646 +#: resize/main.c:649 #, c-format msgid "The filesystem is already 32-bit.\n" msgstr "" -#: resize/main.c:651 +#: resize/main.c:654 #, c-format msgid "" "Cannot shrink this filesystem because it has the stable_inodes feature " "flag.\n" msgstr "" -#: resize/main.c:660 +#: resize/main.c:663 #, c-format msgid "Converting the filesystem to 64-bit.\n" msgstr "" -#: resize/main.c:662 +#: resize/main.c:665 #, c-format msgid "Converting the filesystem to 32-bit.\n" msgstr "" -#: resize/main.c:664 +#: resize/main.c:667 #, c-format msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n" msgstr "" -#: resize/main.c:674 +#: resize/main.c:677 #, c-format msgid "while trying to resize %s" msgstr "" -#: resize/main.c:677 +#: resize/main.c:680 #, c-format msgid "" "Please run 'e2fsck -fy %s' to fix the filesystem\n" "after the aborted resize operation.\n" msgstr "" -#: resize/main.c:682 +#: resize/main.c:685 #, c-format msgid "" "The filesystem on %s is now %llu (%dk) blocks long.\n" "\n" msgstr "" -#: resize/main.c:697 +#: resize/main.c:700 #, c-format msgid "while trying to truncate %s" msgstr "" @@ -7460,7 +7561,7 @@ msgid "Should never happen: resize inode corrupt!\n" msgstr "" #: lib/ext2fs/ext2_err.c:11 -msgid "EXT2FS Library version 1.47.1-rc1" +msgid "EXT2FS Library version 1.47.2-rc1" msgstr "" #: lib/ext2fs/ext2_err.c:12 diff --git a/version.h b/version.h index af575f4da..3755d479e 100644 --- a/version.h +++ b/version.h @@ -4,10 +4,10 @@ * * Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, * 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, - * 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 by Theodore + * 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 by Theodore * Ts'o. This file may be redistributed under the GNU General Public * License v2. */ -#define E2FSPROGS_VERSION "1.47.1" -#define E2FSPROGS_DATE "20-May-2024" +#define E2FSPROGS_VERSION "1.47.2-rc1" +#define E2FSPROGS_DATE "28-Nov-2024"