diff options
author | Theodore Ts'o <tytso@mit.edu> | 2020-01-02 10:59:13 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2020-01-02 10:59:13 -0500 |
commit | 32d33132a8174b22bffea3a59cecd2f3e835afe9 (patch) | |
tree | 79360bb5d66e8cc804e9a2e955ba6834a7b2bd94 | |
parent | c9a8c53b17ccc4543509d55ff3b343ddbfe805e5 (diff) | |
parent | c52d930f3ffbc19fa248d53daa171436ac391bb5 (diff) | |
download | e2fsprogs-32d33132a8174b22bffea3a59cecd2f3e835afe9.tar.gz |
Merge branch 'maint' into next
36 files changed, 3306 insertions, 2941 deletions
diff --git a/MCONFIG.in b/MCONFIG.in index d24f7ef2c..6151825ac 100644 --- a/MCONFIG.in +++ b/MCONFIG.in @@ -213,8 +213,7 @@ DEP_INSTALL_SYMLINK = $(top_builddir)/util/install-symlink \ # Run make gcc-wall to do a build with warning messages. # # -WFLAGS= -std=gnu99 -D_XOPEN_SOURCE=600 -D_GNU_SOURCE \ - -pedantic $(WFLAGS_EXTRA) \ +WFLAGS= -std=gnu99 -D_XOPEN_SOURCE=600 -D_GNU_SOURCE $(WFLAGS_EXTRA) \ -Wall -W -Wwrite-strings -Wpointer-arith \ -Wcast-qual -Wcast-align -Wno-variadic-macros \ -Wstrict-prototypes -Wmissing-prototypes \ @@ -224,14 +223,14 @@ WFLAGS= -std=gnu99 -D_XOPEN_SOURCE=600 -D_GNU_SOURCE \ -UENABLE_NLS gcc-wall-new: - ($(MAKE) CFLAGS_WARN="$(WFLAGS)" > /dev/null) 2>&1 | sed -f $(top_srcdir)/util/gcc-wall-cleanup + ($(MAKE) CFLAGS_WARN="$(WFLAGS)" > /dev/null) 2>&1 gcc-wall: $(MAKE) clean > /dev/null $(MAKE) gcc-wall-new static-check: - ($(MAKE) C=1 V=1 CFLAGS="$(ALL_CFLAGS) $(WFLAGS)") 2>&1 | sed -f $(top_srcdir)/util/static-analysis-cleanup + ($(MAKE) C=1 V=1 CFLAGS="$(ALL_CFLAGS) $(WFLAGS)") 2>&1 static-check-all: $(MAKE) clean > /dev/null diff --git a/config/config.guess b/config/config.guess index 8ca6a44c1..45001cfec 100644..100755 --- a/config/config.guess +++ b/config/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2018 Free Software Foundation, Inc. +# Copyright 1992-2020 Free Software Foundation, Inc. -timestamp='2018-03-01' +timestamp='2020-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2018 Free Software Foundation, Inc. +Copyright 1992-2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,8 +84,6 @@ if test $# != 0; then exit 1 fi -trap 'exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -96,34 +94,40 @@ trap 'exit 1' 1 2 15 # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > "$dummy.c" ; - for c in cc gcc c89 c99 ; do - if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi @@ -138,7 +142,7 @@ Linux|GNU|GNU/*) # We could probably try harder. LIBC=gnu - eval "$set_cc_for_build" + set_cc_for_build cat <<-EOF > "$dummy.c" #include <features.h> #if defined(__UCLIBC__) @@ -199,7 +203,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval "$set_cc_for_build" + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -237,7 +241,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -260,6 +264,9 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:SolidBSD:*:*) echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" + exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; @@ -269,12 +276,15 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:Sortix:*:*) echo "$UNAME_MACHINE"-unknown-sortix exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; *:Redox:*:*) echo "$UNAME_MACHINE"-unknown-redox exit ;; mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -389,7 +399,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval "$set_cc_for_build" + set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. @@ -482,7 +492,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include <stdio.h> /* for printf() prototype */ @@ -579,7 +589,7 @@ EOF exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include <sys/systemcfg.h> @@ -660,7 +670,7 @@ EOF esac fi if [ "$HP_ARCH" = "" ]; then - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE @@ -700,7 +710,7 @@ EOF esac if [ "$HP_ARCH" = hppa2.0w ] then - eval "$set_cc_for_build" + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -726,7 +736,7 @@ EOF echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include <unistd.h> int @@ -840,6 +850,17 @@ EOF *:BSD/OS:*:*) echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf + fi + exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case "$UNAME_PROCESSOR" in @@ -881,7 +902,7 @@ EOF echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin + echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" @@ -894,8 +915,8 @@ EOF # other systems with GNU libc and userland echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; - i*86:Minix:*:*) - echo "$UNAME_MACHINE"-pc-minix + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix exit ;; aarch64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" @@ -905,7 +926,7 @@ EOF echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -922,7 +943,7 @@ EOF echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval "$set_cc_for_build" + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then @@ -971,23 +992,51 @@ EOF echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval "$set_cc_for_build" + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" - test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" @@ -1100,7 +1149,7 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then @@ -1284,38 +1333,39 @@ EOF echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval "$set_cc_for_build" - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build fi - if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; @@ -1358,6 +1408,7 @@ EOF # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. + # shellcheck disable=SC2154 if test "$cputype" = 386; then UNAME_MACHINE=i386 else @@ -1414,8 +1465,148 @@ EOF amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; esac +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" <<EOF +#ifdef _SEQUENT_ +#include <sys/types.h> +#include <sys/utsname.h> +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include <signal.h> +#if defined(_SIZE_T_) || defined(SIGLOST) +#include <sys/utsname.h> +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include <sys/param.h> + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include <sys/param.h> +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + echo "$0: unable to guess system type" >&2 case "$UNAME_MACHINE:$UNAME_SYSTEM" in @@ -1469,7 +1660,7 @@ EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-functions 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/config/config.sub b/config/config.sub index 0b218edcb..f02d43ad5 100644..100755 --- a/config/config.sub +++ b/config/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2018 Free Software Foundation, Inc. +# Copyright 1992-2020 Free Software Foundation, Inc. -timestamp='2018-02-28' +timestamp='2020-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright 1992-2018 Free Software Foundation, Inc. +Copyright 1992-2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -89,7 +89,7 @@ while test $# -gt 0 ; do - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" + echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) @@ -110,1223 +110,1164 @@ case $# in exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | cloudabi*-eabi* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo "$1" | sed 's/-[^-]*$//'` - if [ "$basic_machine" != "$1" ] - then os=`echo "$1" | sed 's/.*-/-/'` - else os=; fi - ;; -esac +# Split fields of configuration type +# shellcheck disable=SC2162 +IFS="-" read field1 field2 field3 field4 <<EOF +$1 +EOF -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 +# Separate into logical components for further validation +case $1 in + *-*-*-*-*) + echo Invalid configuration \`"$1"\': more than four components >&2 + exit 1 ;; - -lynx*) - os=-lynxos + *-*-*-*) + basic_machine=$field1-$field2 + os=$field3-$field4 ;; - -ptx*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ + | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + os=linux-android + ;; + *) + basic_machine=$field1-$field2 + os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + os= + ;; + *) + basic_machine=$field1 + os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + os=bsd + ;; + a29khif) + basic_machine=a29k-amd + os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=scout + ;; + alliant) + basic_machine=fx80-alliant + os= + ;; + altos | altos3068) + basic_machine=m68k-altos + os= + ;; + am29k) + basic_machine=a29k-none + os=bsd + ;; + amdahl) + basic_machine=580-amdahl + os=sysv + ;; + amiga) + basic_machine=m68k-unknown + os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=bsd + ;; + aros) + basic_machine=i386-pc + os=aros + ;; + aux) + basic_machine=m68k-apple + os=aux + ;; + balance) + basic_machine=ns32k-sequent + os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=linux + ;; + cegcc) + basic_machine=arm-unknown + os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=bsd + ;; + convex-c2) + basic_machine=c2-convex + os=bsd + ;; + convex-c32) + basic_machine=c32-convex + os=bsd + ;; + convex-c34) + basic_machine=c34-convex + os=bsd + ;; + convex-c38) + basic_machine=c38-convex + os=bsd + ;; + cray) + basic_machine=j90-cray + os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + os= + ;; + da30) + basic_machine=m68k-da30 + os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + os= + ;; + delta88) + basic_machine=m88k-motorola + os=sysv3 + ;; + dicos) + basic_machine=i686-pc + os=dicos + ;; + djgpp) + basic_machine=i586-pc + os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=ose + ;; + gmicro) + basic_machine=tron-gmicro + os=sysv + ;; + go32) + basic_machine=i386-pc + os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=hms + ;; + harris) + basic_machine=m88k-harris + os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=proelf + ;; + i386mach) + basic_machine=i386-mach + os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + os=sysv + ;; + merlin) + basic_machine=ns32k-utek + os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + os=coff + ;; + morphos) + basic_machine=powerpc-unknown + os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=moxiebox + ;; + msdos) + basic_machine=i386-pc + os=msdos + ;; + msys) + basic_machine=i686-pc + os=msys + ;; + mvs) + basic_machine=i370-ibm + os=mvs + ;; + nacl) + basic_machine=le32-unknown + os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=newsos + ;; + news1000) + basic_machine=m68030-sony + os=newsos + ;; + necv70) + basic_machine=v70-nec + os=sysv + ;; + nh3000) + basic_machine=m68k-harris + os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=cxux + ;; + nindy960) + basic_machine=i960-intel + os=nindy + ;; + mon960) + basic_machine=i960-intel + os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=ose + ;; + os68k) + basic_machine=m68k-none + os=os68k + ;; + paragon) + basic_machine=i860-intel + os=osf + ;; + parisc) + basic_machine=hppa-unknown + os=linux + ;; + pw32) + basic_machine=i586-unknown + os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=rdos + ;; + rdos32) + basic_machine=i386-pc + os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=coff + ;; + sa29200) + basic_machine=a29k-amd + os=udi + ;; + sei) + basic_machine=mips-sei + os=seiux + ;; + sequent) + basic_machine=i386-sequent + os= + ;; + sps7) + basic_machine=m68k-bull + os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + os= + ;; + stratus) + basic_machine=i860-stratus + os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + os= + ;; + sun2os3) + basic_machine=m68000-sun + os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + os= + ;; + sun3os3) + basic_machine=m68k-sun + os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + os= + ;; + sun4os3) + basic_machine=sparc-sun + os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + os= + ;; + sv1) + basic_machine=sv1-cray + os=unicos + ;; + symmetry) + basic_machine=i386-sequent + os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=unicos + ;; + t90) + basic_machine=t90-cray + os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + os=tpf + ;; + udi29k) + basic_machine=a29k-amd + os=udi + ;; + ultra3) + basic_machine=a29k-nyu + os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=none + ;; + vaxv) + basic_machine=vax-dec + os=sysv + ;; + vms) + basic_machine=vax-dec + os=vms + ;; + vsta) + basic_machine=i386-pc + os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=vxworks + ;; + xbox) + basic_machine=i686-pc + os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + os=unicos + ;; + *) + basic_machine=$1 + os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pru \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | wasm32 \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + op50n) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + op60c) + cpu=hppa1.1 + vendor=oki ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pru-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | wasm32-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-pc - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx + cpu=m68k + vendor=motorola ;; dpx2*) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + cpu=m68k + vendor=bull + os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + os=${os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=sysv32 ;; i*86v4*) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=sysv4 ;; i*86v) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=sysv ;; i*86sol2) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=solaris2 ;; - vsta) - basic_machine=i386-unknown - os=-vsta + j90 | j90-cray) + cpu=j90 + vendor=cray + os=${os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi + cpu=mips + vendor=sgi case $os in - -irix*) + irix*) ;; *) - os=-irix4 + os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 + cpu=m68000 + vendor=convergent ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv + cpu=mips + vendor=sony + os=newsos ;; next | m*-next) - basic_machine=m68k-next + cpu=m68k + vendor=next case $os in - -nextstep* ) + openstep*) + ;; + nextstep*) ;; - -ns2*) - os=-nextstep2 + ns2*) + os=nextstep2 ;; *) - os=-nextstep3 + os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - nsv-tandem) - basic_machine=nsv-tandem - ;; - nsx-tandem) - basic_machine=nsx-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti + cpu=m68k + vendor=tti ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` + pc532) + cpu=ns32k + vendor=pc532 ;; pn) - basic_machine=pn-gould + cpu=pn + vendor=gould ;; - power) basic_machine=power-ibm + power) + cpu=power + vendor=ibm ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown + ps2) + cpu=i386 + vendor=ibm ;; - ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + rm[46]00) + cpu=mips + vendor=siemens ;; - ppc64le | powerpc64little) - basic_machine=powerpc64le-unknown + rtpc | rtpc-*) + cpu=romp + vendor=ibm ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` + sde) + cpu=mipsisa32 + vendor=sde + os=${os:-elf} ;; - ps2) - basic_machine=i386-ibm + simso-wrs) + cpu=sparclite + vendor=wrs + os=vxworks ;; - pw32) - basic_machine=i586-unknown - os=-pw32 + tower | tower-32) + cpu=m68k + vendor=ncr ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - rdos32) - basic_machine=i386-pc - os=-rdos + w65) + cpu=w65 + vendor=wdc ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff + w89k-*) + cpu=hppa1.1 + vendor=winbond + os=proelf ;; - rm[46]00) - basic_machine=mips-siemens + none) + cpu=none + vendor=none ;; - rtpc | rtpc-*) - basic_machine=romp-ibm + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - s390 | s390-*) - basic_machine=s390-ibm + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; - s390x | s390x-*) - basic_machine=s390x-ibm + + *-*) + # shellcheck disable=SC2162 + IFS="-" read cpu vendor <<EOF +$basic_machine +EOF ;; - sa29200) - basic_machine=a29k-amd - os=-udi + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + cpu=$basic_machine + vendor=pc ;; - sb1) - basic_machine=mipsisa64sb1-unknown + # These rules are duplicated from below for sake of the special case above; + # i.e. things that normalized to x86 arches should also default to "pc" + pc98) + cpu=i386 + vendor=pc ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown + x64 | amd64) + cpu=x86_64 + vendor=pc ;; - sde) - basic_machine=mipsisa32-sde - os=-elf + # Recognize the basic CPU types without company name. + *) + cpu=$basic_machine + vendor=unknown ;; - sei) - basic_machine=mips-sei - os=-seiux +esac + +unset -v basic_machine + +# Decode basic machines in the full and proper CPU-Company form. +case $cpu-$vendor in + # Here we handle the default manufacturer of certain CPU types in canonical form. It is in + # some cases the only manufacturer, in others, it is the most popular. + craynv-unknown) + vendor=cray + os=${os:-unicosmp} ;; - sequent) - basic_machine=i386-sequent + c90-unknown | c90-cray) + vendor=cray + os=${os:-unicos} ;; - sh5el) - basic_machine=sh5le-unknown + fx80-unknown) + vendor=alliant ;; - simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks + romp-unknown) + vendor=ibm ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 + mmix-unknown) + vendor=knuth ;; - spur) - basic_machine=spur-unknown + microblaze-unknown | microblazeel-unknown) + vendor=xilinx ;; - st2000) - basic_machine=m68k-tandem + rs6000-unknown) + vendor=ibm ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 + vax-unknown) + vendor=dec ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` + pdp11-unknown) + vendor=dec ;; - sun2) - basic_machine=m68000-sun + we32k-unknown) + vendor=att ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 + cydra-unknown) + vendor=cydrome ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 + i370-ibm*) + vendor=ibm ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 + orion-unknown) + vendor=highlevel ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 + xps-unknown | xps100-unknown) + cpu=xps100 + vendor=honeywell ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 + + # Here we normalize CPU types with a missing or matching vendor + dpx20-unknown | dpx20-bull) + cpu=rs6000 + vendor=bull + os=${os:-bosx} ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 + + # Here we normalize CPU types irrespective of the vendor + amd64-*) + cpu=x86_64 ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 + blackfin-*) + cpu=bfin + os=linux ;; - sun3 | sun3-*) - basic_machine=m68k-sun + c54x-*) + cpu=tic54x ;; - sun4) - basic_machine=sparc-sun + c55x-*) + cpu=tic55x ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun + c6x-*) + cpu=tic6x ;; - sv1) - basic_machine=sv1-cray - os=-unicos + e500v[12]-*) + cpu=powerpc + os=$os"spe" ;; - symmetry) - basic_machine=i386-sequent - os=-dynix + mips3*-*) + cpu=mips64 ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos + ms1-*) + cpu=mt ;; - t90) - basic_machine=t90-cray - os=-unicos + m68knommu-*) + cpu=m68k + os=linux ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu + m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) + cpu=s12z ;; - tx39) - basic_machine=mipstx39-unknown + openrisc-*) + cpu=or32 ;; - tx39el) - basic_machine=mipstx39el-unknown + parisc-*) + cpu=hppa + os=linux ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + cpu=i586 ;; - tower | tower-32) - basic_machine=m68k-ncr + pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) + cpu=i686 ;; - tpf) - basic_machine=s390x-ibm - os=-tpf + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + cpu=i686 ;; - udi29k) - basic_machine=a29k-amd - os=-udi + pentium4-*) + cpu=i786 ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 + pc98-*) + cpu=i386 ;; - v810 | necv810) - basic_machine=v810-nec - os=-none + ppc-* | ppcbe-*) + cpu=powerpc ;; - vaxv) - basic_machine=vax-dec - os=-sysv + ppcle-* | powerpclittle-*) + cpu=powerpcle ;; - vms) - basic_machine=vax-dec - os=-vms + ppc64-*) + cpu=powerpc64 ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu + ppc64le-* | powerpc64little-*) + cpu=powerpc64le ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks + sb1-*) + cpu=mipsisa64sb1 ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks + sb1el-*) + cpu=mipsisa64sb1el ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks + sh5e[lb]-*) + cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` ;; - w65*) - basic_machine=w65-wdc - os=-none + spur-*) + cpu=spur ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf + strongarm-* | thumb-*) + cpu=arm ;; - x64) - basic_machine=x86_64-pc + tx39-*) + cpu=mipstx39 ;; - xbox) - basic_machine=i686-pc - os=-mingw32 + tx39el-*) + cpu=mipstx39el ;; - xps | xps100) - basic_machine=xps100-honeywell + x64-*) + cpu=x86_64 ;; xscale-* | xscalee[bl]-*) - basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - none) - basic_machine=none-none - os=-none + cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm + # Recognize the canonical CPU Types that limit and/or modify the + # company names they are paired with. + cr16-*) + os=${os:-elf} ;; - mmix) - basic_machine=mmix-knuth + crisv32-* | etraxfs*-*) + cpu=crisv32 + vendor=axis ;; - rs6000) - basic_machine=rs6000-ibm + cris-* | etrax*-*) + cpu=cris + vendor=axis ;; - vax) - basic_machine=vax-dec + crx-*) + os=${os:-elf} ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att + neo-tandem) + cpu=neo + vendor=tandem ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown + nse-tandem) + cpu=nse + vendor=tandem ;; - cydra) - basic_machine=cydra-cydrome + nsr-tandem) + cpu=nsr + vendor=tandem ;; - orion) - basic_machine=orion-highlevel + nsv-tandem) + cpu=nsv + vendor=tandem ;; - orion105) - basic_machine=clipper-highlevel + nsx-tandem) + cpu=nsx + vendor=tandem ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple + s390-*) + cpu=s390 + vendor=ibm ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple + s390x-*) + cpu=s390x + vendor=ibm ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. + tile*-*) + os=${os:-linux-gnu} ;; + *) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv64 \ + | rl78 | romp | rs6000 | rx \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1334,199 +1275,243 @@ esac # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if [ x$os != x ] then case $os in # First match some system type aliases that might get confused # with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux + # solaris* is a basic system type, with this one exception. + auroraux) + os=auroraux ;; - -solaris1 | -solaris1.*) + bluegene*) + os=cnk + ;; + solaris1 | solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; - -solaris) - os=-solaris2 + solaris) + os=solaris2 ;; - -unixware*) - os=-sysv4.2uw + unixware*) + os=sysv4.2uw ;; - -gnu/linux*) + gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # es1800 is here to avoid being matched by es* (a different OS) - -es1800*) - os=-ose + es1800*) + os=ose + ;; + # Some version numbers need modification + chorusos*) + os=chorusos + ;; + isc) + os=isc2.2 + ;; + sco6) + os=sco5v6 + ;; + sco5) + os=sco3.2v5 + ;; + sco4) + os=sco3.2v4 + ;; + sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + ;; + sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + scout) + # Don't match below + ;; + sco*) + os=sco3.2v2 + ;; + psos*) + os=psos ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ - | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ - | -midnightbsd*) + # sysv* is not here because it comes later, after sysvr4. + gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | kopensolaris* | plan9* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | knetbsd* | mirbsd* | netbsd* \ + | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ + | linux-newlib* | linux-musl* | linux-uclibc* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* \ + | morphos* | superux* | rtmk* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix) # Remember, each alternative MUST END IN *, to match a version number. ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) + qnx*) + case $cpu in + x86 | i*86) ;; *) - os=-nto$os + os=nto-$os ;; esac ;; - -nto-qnx*) + hiux*) + os=hiuxwe2 ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` + nto-qnx*) ;; - -sim | -xray | -os68k* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -mac*) - os=`echo "$os" | sed -e 's|mac|macos|'` + sim | xray | os68k* | v88r* \ + | windows* | osx | abug | netware* | os9* \ + | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) ;; - -linux-dietlibc) - os=-linux-dietlibc + linux-dietlibc) + os=linux-dietlibc ;; - -linux*) + linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; - -sunos5*) - os=`echo "$os" | sed -e 's|sunos5|solaris2|'` + lynx*178) + os=lynxos178 ;; - -sunos6*) - os=`echo "$os" | sed -e 's|sunos6|solaris3|'` + lynx*5) + os=lynxos5 + ;; + lynx*) + os=lynxos ;; - -opened*) - os=-openedition + mac*) + os=`echo "$os" | sed -e 's|mac|macos|'` ;; - -os400*) - os=-os400 + opened*) + os=openedition ;; - -wince*) - os=-wince + os400*) + os=os400 ;; - -utek*) - os=-bsd + sunos5*) + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; - -dynix*) - os=-bsd + sunos6*) + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; - -acis*) - os=-aos + wince*) + os=wince ;; - -atheos*) - os=-atheos + utek*) + os=bsd ;; - -syllable*) - os=-syllable + dynix*) + os=bsd ;; - -386bsd) - os=-bsd + acis*) + os=aos ;; - -ctix* | -uts*) - os=-sysv + atheos*) + os=atheos ;; - -nova*) - os=-rtmk-nova + syllable*) + os=syllable ;; - -ns2) - os=-nextstep2 + 386bsd) + os=bsd ;; - -nsk*) - os=-nsk + ctix* | uts*) + os=sysv + ;; + nova*) + os=rtmk-nova + ;; + ns2) + os=nextstep2 ;; # Preserve the version number of sinix5. - -sinix5.*) + sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; - -sinix*) - os=-sysv4 + sinix*) + os=sysv4 ;; - -tpf*) - os=-tpf + tpf*) + os=tpf ;; - -triton*) - os=-sysv3 + triton*) + os=sysv3 ;; - -oss*) - os=-sysv3 + oss*) + os=sysv3 ;; - -svr4*) - os=-sysv4 + svr4*) + os=sysv4 ;; - -svr3) - os=-sysv3 + svr3) + os=sysv3 ;; - -sysvr4) - os=-sysv4 + sysvr4) + os=sysv4 ;; - # This must come after -sysvr4. - -sysv*) + # This must come after sysvr4. + sysv*) ;; - -ose*) - os=-ose + ose*) + os=ose ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint + *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) + os=mint ;; - -zvmoe) - os=-zvmoe + zvmoe) + os=zvmoe ;; - -dicos*) - os=-dicos + dicos*) + os=dicos ;; - -pikeos*) + pikeos*) # Until real need of OS specific support for # particular features comes up, bare metal # configurations are quite functional. - case $basic_machine in + case $cpu in arm*) - os=-eabi + os=eabi ;; *) - os=-elf + os=elf ;; esac ;; - -nacl*) + nacl*) ;; - -ios) + ios) ;; - -none) + none) + ;; + *-eabi) ;; *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; @@ -1543,258 +1528,265 @@ else # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + os=linux ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; pru-*) - os=-elf + os=elf ;; *-be) - os=-beos + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; *-next) - os=-nextstep + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) +case $vendor in + unknown) case $os in - -riscix*) + riscix*) vendor=acorn ;; - -sunos*) + sunos*) vendor=sun ;; - -cnk*|-aix*) + cnk*|-aix*) vendor=ibm ;; - -beos*) + beos*) vendor=be ;; - -hpux*) + hpux*) vendor=hp ;; - -mpeix*) + mpeix*) vendor=hp ;; - -hiux*) + hiux*) vendor=hitachi ;; - -unos*) + unos*) vendor=crds ;; - -dgux*) + dgux*) vendor=dg ;; - -luna*) + luna*) vendor=omron ;; - -genix*) + genix*) vendor=ns ;; - -mvs* | -opened*) + clix*) + vendor=intergraph + ;; + mvs* | opened*) vendor=ibm ;; - -os400*) + os400*) vendor=ibm ;; - -ptx*) + ptx*) vendor=sequent ;; - -tpf*) + tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + vxsim* | vxworks* | windiss*) vendor=wrs ;; - -aux*) + aux*) vendor=apple ;; - -hms*) + hms*) vendor=hitachi ;; - -mpw* | -macos*) + mpw* | macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) vendor=atari ;; - -vos*) + vos*) vendor=stratus ;; esac - basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo "$basic_machine$os" +echo "$cpu-$vendor-$os" exit # Local variables: -# eval: (add-hook 'write-file-functions 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/contrib/android/base_fs.c b/contrib/android/base_fs.c index 142030500..652317e26 100644 --- a/contrib/android/base_fs.c +++ b/contrib/android/base_fs.c @@ -72,8 +72,7 @@ static struct basefs_entry *basefs_readline(FILE *f, const char *mountpoint, range_start = atoll(block); block = strtok_r(NULL, "-", &saveptr2); range_end = block ? atoll(block) : range_start; - add_blocks_to_range(&entry->head, &entry->tail, range_start, - range_end); + add_blocks_to_range(&entry->blocks, range_start, range_end); block_range = strtok_r(NULL, ",\n", &saveptr1); } end: @@ -151,7 +150,6 @@ static int start_new_file(char *path, ext2_ino_t ino EXT2FS_ATTR((unused)), { struct base_fs *params = data; - params->entry.head = params->entry.tail = NULL; params->entry.path = LINUX_S_ISREG(inode->i_mode) ? path : NULL; return 0; } @@ -162,8 +160,7 @@ static int add_block(ext2_filsys fs EXT2FS_ATTR((unused)), blk64_t blocknr, struct base_fs *params = data; if (params->entry.path && !metadata) - add_blocks_to_range(¶ms->entry.head, ¶ms->entry.tail, - blocknr, blocknr); + add_blocks_to_range(¶ms->entry.blocks, blocknr, blocknr); return 0; } @@ -181,11 +178,11 @@ static int end_new_file(void *data) return 0; if (fprintf(params->file, "%s%s ", params->mountpoint, params->entry.path) < 0 - || write_block_ranges(params->file, params->entry.head, ",") + || write_block_ranges(params->file, params->entry.blocks.head, ",") || fwrite("\n", 1, 1, params->file) != 1) return -1; - delete_block_ranges(params->entry.head); + delete_block_ranges(¶ms->entry.blocks); return 0; } diff --git a/contrib/android/base_fs.h b/contrib/android/base_fs.h index e9f46b4ab..f53f1ed88 100644 --- a/contrib/android/base_fs.h +++ b/contrib/android/base_fs.h @@ -7,8 +7,7 @@ struct basefs_entry { char *path; - struct block_range *head; - struct block_range *tail; + struct block_range_list blocks; }; extern struct fsmap_format base_fs_format; diff --git a/contrib/android/basefs_allocator.c b/contrib/android/basefs_allocator.c index a014744a6..658a75147 100644 --- a/contrib/android/basefs_allocator.c +++ b/contrib/android/basefs_allocator.c @@ -1,3 +1,4 @@ +#include <limits.h> #include <sys/types.h> #include <sys/stat.h> #include "basefs_allocator.h" @@ -8,108 +9,249 @@ struct base_fs_allocator { struct ext2fs_hashmap *entries; struct basefs_entry *cur_entry; + /* Blocks which are definitely owned by a single inode in BaseFS. */ + ext2fs_block_bitmap exclusive_block_map; + /* Blocks which are available to the first inode that requests it. */ + ext2fs_block_bitmap dedup_block_map; }; static errcode_t basefs_block_allocator(ext2_filsys, blk64_t, blk64_t *, struct blk_alloc_ctx *ctx); -static void fs_free_blocks_range(ext2_filsys fs, struct block_range *blocks) +/* + * Free any reserved, but unconsumed block ranges in the allocator. This both + * frees the block_range_list data structure and unreserves exclusive blocks + * from the block map. + */ +static void fs_free_blocks_range(ext2_filsys fs, + struct base_fs_allocator *allocator, + struct block_range_list *list) { - while (blocks) { - ext2fs_unmark_block_bitmap_range2(fs->block_map, blocks->start, - blocks->end - blocks->start + 1); - blocks = blocks->next; + ext2fs_block_bitmap exclusive_map = allocator->exclusive_block_map; + + blk64_t block; + while (list->head) { + block = consume_next_block(list); + if (ext2fs_test_block_bitmap2(exclusive_map, block)) { + ext2fs_unmark_block_bitmap2(fs->block_map, block); + ext2fs_unmark_block_bitmap2(exclusive_map, block); + } + } +} + +static void basefs_allocator_free(ext2_filsys fs, + struct base_fs_allocator *allocator) +{ + struct basefs_entry *e; + struct ext2fs_hashmap_entry *it = NULL; + struct ext2fs_hashmap *entries = allocator->entries; + + if (entries) { + while ((e = ext2fs_hashmap_iter_in_order(entries, &it))) { + fs_free_blocks_range(fs, allocator, &e->blocks); + delete_block_ranges(&e->blocks); + } + ext2fs_hashmap_free(entries); + } + ext2fs_free_block_bitmap(allocator->exclusive_block_map); + ext2fs_free_block_bitmap(allocator->dedup_block_map); + free(allocator); +} + +/* + * Build a bitmap of which blocks are definitely owned by exactly one file in + * Base FS. Blocks which are not valid or are de-duplicated are skipped. This + * is called during allocator initialization, to ensure that libext2fs does + * not allocate which we want to re-use. + * + * If a block was allocated in the initial filesystem, it can never be re-used, + * so it will appear in neither the exclusive or dedup set. If a block is used + * by multiple files, it will be removed from the owned set and instead added + * to the dedup set. + * + * The dedup set is not removed from fs->block_map. This allows us to re-use + * dedup blocks separately and not have them be allocated outside of file data. + */ +static void fs_reserve_block(ext2_filsys fs, + struct base_fs_allocator *allocator, + blk64_t block) +{ + ext2fs_block_bitmap exclusive_map = allocator->exclusive_block_map; + ext2fs_block_bitmap dedup_map = allocator->dedup_block_map; + + if (block >= ext2fs_blocks_count(fs->super)) + return; + + if (ext2fs_test_block_bitmap2(fs->block_map, block)) { + if (!ext2fs_test_block_bitmap2(exclusive_map, block)) + return; + ext2fs_unmark_block_bitmap2(exclusive_map, block); + ext2fs_mark_block_bitmap2(dedup_map, block); + } else { + ext2fs_mark_block_bitmap2(fs->block_map, block); + ext2fs_mark_block_bitmap2(exclusive_map, block); } } -static void fs_reserve_blocks_range(ext2_filsys fs, struct block_range *blocks) +static void fs_reserve_blocks_range(ext2_filsys fs, + struct base_fs_allocator *allocator, + struct block_range_list *list) { + blk64_t block; + struct block_range *blocks = list->head; + while (blocks) { - ext2fs_mark_block_bitmap_range2(fs->block_map, - blocks->start, blocks->end - blocks->start + 1); + for (block = blocks->start; block <= blocks->end; block++) + fs_reserve_block(fs, allocator, block); blocks = blocks->next; } } -errcode_t base_fs_alloc_load(ext2_filsys fs, const char *file, - const char *mountpoint) +/* + * For each file in the base FS map, ensure that its blocks are reserved in + * the actual block map. This prevents libext2fs from allocating them for + * general purpose use, and ensures that if the file needs data blocks, they + * can be re-acquired exclusively for that file. + * + * If a file in the base map is missing, or not a regular file in the new + * filesystem, then it's skipped to ensure that its blocks are reusable. + */ +static errcode_t fs_reserve_blocks(ext2_filsys fs, + struct base_fs_allocator *allocator, + const char *src_dir) { - errcode_t retval; + int nbytes; + char full_path[PATH_MAX]; + const char *sep = "/"; + struct stat st; struct basefs_entry *e; struct ext2fs_hashmap_entry *it = NULL; + struct ext2fs_hashmap *entries = allocator->entries; + + if (strlen(src_dir) && src_dir[strlen(src_dir) - 1] == '/') + sep = ""; + + while ((e = ext2fs_hashmap_iter_in_order(entries, &it))) { + nbytes = snprintf(full_path, sizeof(full_path), "%s%s%s", + src_dir, sep, e->path); + if (nbytes >= sizeof(full_path)) + return ENAMETOOLONG; + if (lstat(full_path, &st) || !S_ISREG(st.st_mode)) + continue; + fs_reserve_blocks_range(fs, allocator, &e->blocks); + } + return 0; +} + +errcode_t base_fs_alloc_load(ext2_filsys fs, const char *file, + const char *mountpoint, const char *src_dir) +{ + errcode_t retval = 0; struct base_fs_allocator *allocator; - struct ext2fs_hashmap *entries = basefs_parse(file, mountpoint); - if (!entries) - return -1; - allocator = malloc(sizeof(*allocator)); - if (!allocator) - goto err_alloc; + allocator = calloc(1, sizeof(*allocator)); + if (!allocator) { + retval = ENOMEM; + goto out; + } retval = ext2fs_read_bitmaps(fs); if (retval) - goto err_bitmap; - while ((e = ext2fs_hashmap_iter_in_order(entries, &it))) - fs_reserve_blocks_range(fs, e->head); + goto err_load; allocator->cur_entry = NULL; - allocator->entries = entries; + allocator->entries = basefs_parse(file, mountpoint); + if (!allocator->entries) { + retval = EIO; + goto err_load; + } + retval = ext2fs_allocate_block_bitmap(fs, "exclusive map", + &allocator->exclusive_block_map); + if (retval) + goto err_load; + retval = ext2fs_allocate_block_bitmap(fs, "dedup map", + &allocator->dedup_block_map); + if (retval) + goto err_load; + + retval = fs_reserve_blocks(fs, allocator, src_dir); + if (retval) + goto err_load; /* Override the default allocator */ fs->get_alloc_block2 = basefs_block_allocator; fs->priv_data = allocator; - return 0; + goto out; -err_bitmap: - free(allocator); -err_alloc: - ext2fs_hashmap_free(entries); - return EXIT_FAILURE; +err_load: + basefs_allocator_free(fs, allocator); +out: + return retval; +} + +/* Try and acquire the next usable block from the Base FS map. */ +static int get_next_block(ext2_filsys fs, struct base_fs_allocator *allocator, + struct block_range_list* list, blk64_t *ret) +{ + blk64_t block; + ext2fs_block_bitmap exclusive_map = allocator->exclusive_block_map; + ext2fs_block_bitmap dedup_map = allocator->dedup_block_map; + + while (list->head) { + block = consume_next_block(list); + if (block >= ext2fs_blocks_count(fs->super)) + continue; + if (ext2fs_test_block_bitmap2(exclusive_map, block)) { + ext2fs_unmark_block_bitmap2(exclusive_map, block); + *ret = block; + return 0; + } + if (ext2fs_test_block_bitmap2(dedup_map, block)) { + ext2fs_unmark_block_bitmap2(dedup_map, block); + *ret = block; + return 0; + } + } + return -1; } static errcode_t basefs_block_allocator(ext2_filsys fs, blk64_t goal, blk64_t *ret, struct blk_alloc_ctx *ctx) { errcode_t retval; - struct block_range *next_range; struct base_fs_allocator *allocator = fs->priv_data; struct basefs_entry *e = allocator->cur_entry; + ext2fs_block_bitmap dedup_map = allocator->dedup_block_map; - /* Try to get a block from the base_fs */ - if (e && e->head && ctx && (ctx->flags & BLOCK_ALLOC_DATA)) { - *ret = e->head->start; - e->head->start += 1; - if (e->head->start > e->head->end) { - next_range = e->head->next; - free(e->head); - e->head = next_range; - } - } else { /* Allocate a new block */ - retval = ext2fs_new_block2(fs, goal, fs->block_map, ret); - if (retval) - return retval; + if (e && ctx && (ctx->flags & BLOCK_ALLOC_DATA)) { + if (!get_next_block(fs, allocator, &e->blocks, ret)) + return 0; + } + + retval = ext2fs_new_block2(fs, goal, fs->block_map, ret); + if (!retval) { ext2fs_mark_block_bitmap2(fs->block_map, *ret); + return 0; } - return 0; + if (retval == EXT2_ET_BLOCK_ALLOC_FAIL) { + /* Try to steal a block from the dedup pool. */ + retval = ext2fs_find_first_set_block_bitmap2(dedup_map, + fs->super->s_first_data_block, + ext2fs_blocks_count(fs->super) - 1, ret); + if (!retval) { + ext2fs_unmark_block_bitmap2(dedup_map, *ret); + return 0; + } + } + return retval; } void base_fs_alloc_cleanup(ext2_filsys fs) { - struct basefs_entry *e; - struct ext2fs_hashmap_entry *it = NULL; - struct base_fs_allocator *allocator = fs->priv_data; - - while ((e = ext2fs_hashmap_iter_in_order(allocator->entries, &it))) { - fs_free_blocks_range(fs, e->head); - delete_block_ranges(e->head); - e->head = e->tail = NULL; - } - + basefs_allocator_free(fs, fs->priv_data); fs->priv_data = NULL; fs->get_alloc_block2 = NULL; - ext2fs_hashmap_free(allocator->entries); - free(allocator); } errcode_t base_fs_alloc_set_target(ext2_filsys fs, const char *target_path, @@ -140,9 +282,7 @@ errcode_t base_fs_alloc_unset_target(ext2_filsys fs, if (!allocator || !allocator->cur_entry || mode != S_IFREG) return 0; - fs_free_blocks_range(fs, allocator->cur_entry->head); - delete_block_ranges(allocator->cur_entry->head); - allocator->cur_entry->head = allocator->cur_entry->tail = NULL; - allocator->cur_entry = NULL; + fs_free_blocks_range(fs, allocator, &allocator->cur_entry->blocks); + delete_block_ranges(&allocator->cur_entry->blocks); return 0; } diff --git a/contrib/android/basefs_allocator.h b/contrib/android/basefs_allocator.h index f1109cd61..6d1c65e30 100644 --- a/contrib/android/basefs_allocator.h +++ b/contrib/android/basefs_allocator.h @@ -5,7 +5,7 @@ # include <ext2fs/ext2fs.h> errcode_t base_fs_alloc_load(ext2_filsys fs, const char *file, - const char *mountpoint); + const char *mountpoint, const char *src_dir); void base_fs_alloc_cleanup(ext2_filsys fs); errcode_t base_fs_alloc_set_target(ext2_filsys fs, const char *target_path, diff --git a/contrib/android/block_list.c b/contrib/android/block_list.c index 25dcc514e..63cc1a22b 100644 --- a/contrib/android/block_list.c +++ b/contrib/android/block_list.c @@ -9,16 +9,13 @@ struct block_list { FILE *f; const char *mountpoint; - struct { - const char *filename; - struct block_range *head; - struct block_range *tail; - } entry; + const char *filename; + struct block_range_list blocks; }; static void *init(const char *file, const char *mountpoint) { - struct block_list *params = malloc(sizeof(*params)); + struct block_list *params = calloc(1, sizeof(*params)); if (!params) return NULL; @@ -37,8 +34,7 @@ static int start_new_file(char *path, ext2_ino_t ino EXT2FS_ATTR((unused)), { struct block_list *params = data; - params->entry.head = params->entry.tail = NULL; - params->entry.filename = LINUX_S_ISREG(inode->i_mode) ? path : NULL; + params->filename = LINUX_S_ISREG(inode->i_mode) ? path : NULL; return 0; } @@ -47,9 +43,8 @@ static int add_block(ext2_filsys fs EXT2FS_ATTR((unused)), blk64_t blocknr, { struct block_list *params = data; - if (params->entry.filename && !metadata) - add_blocks_to_range(¶ms->entry.head, ¶ms->entry.tail, - blocknr, blocknr); + if (params->filename && !metadata) + add_blocks_to_range(¶ms->blocks, blocknr, blocknr); return 0; } @@ -63,15 +58,15 @@ static int end_new_file(void *data) { struct block_list *params = data; - if (!params->entry.filename || !params->entry.head) + if (!params->filename || !params->blocks.head) return 0; if (fprintf(params->f, "%s%s ", params->mountpoint, - params->entry.filename) < 0 - || write_block_ranges(params->f, params->entry.head, " ") + params->filename) < 0 + || write_block_ranges(params->f, params->blocks.head, " ") || fwrite("\n", 1, 1, params->f) != 1) return -1; - delete_block_ranges(params->entry.head); + delete_block_ranges(¶ms->blocks); return 0; } diff --git a/contrib/android/block_range.c b/contrib/android/block_range.c index 2f951c780..0a068826c 100644 --- a/contrib/android/block_range.c +++ b/contrib/android/block_range.c @@ -12,29 +12,35 @@ struct block_range *new_block_range(blk64_t start, blk64_t end) return range; } -void add_blocks_to_range(struct block_range **head, struct block_range **tail, - blk64_t blk_start, blk64_t blk_end) +void add_blocks_to_range(struct block_range_list *list, blk64_t blk_start, + blk64_t blk_end) { - if (*head == NULL) - *head = *tail = new_block_range(blk_start, blk_end); - else if ((*tail)->end + 1 == blk_start) - (*tail)->end += (blk_end - blk_start + 1); + if (list->head == NULL) + list->head = list->tail = new_block_range(blk_start, blk_end); + else if (list->tail->end + 1 == blk_start) + list->tail->end += (blk_end - blk_start + 1); else { struct block_range *range = new_block_range(blk_start, blk_end); - (*tail)->next = range; - *tail = range; + list->tail->next = range; + list->tail = range; } } -void delete_block_ranges(struct block_range *head) +static void remove_head(struct block_range_list *list) { - struct block_range *tmp; + struct block_range *next_range = list->head->next; - while (head) { - tmp = head->next; - free(head); - head = tmp; - } + free(list->head); + if (next_range == NULL) + list->head = list->tail = NULL; + else + list->head = next_range; +} + +void delete_block_ranges(struct block_range_list *list) +{ + while (list->head) + remove_head(list); } int write_block_ranges(FILE *f, struct block_range *range, @@ -62,3 +68,13 @@ int write_block_ranges(FILE *f, struct block_range *range, return -1; return 0; } + +blk64_t consume_next_block(struct block_range_list *list) +{ + blk64_t ret = list->head->start; + + list->head->start += 1; + if (list->head->start > list->head->end) + remove_head(list); + return ret; +} diff --git a/contrib/android/block_range.h b/contrib/android/block_range.h index 31e3c23fa..cf7971e85 100644 --- a/contrib/android/block_range.h +++ b/contrib/android/block_range.h @@ -10,9 +10,20 @@ struct block_range { struct block_range *next; }; -void add_blocks_to_range(struct block_range **head, struct block_range **tail, - blk64_t blk_start, blk64_t blk_end); -void delete_block_ranges(struct block_range *head); +struct block_range_list { + struct block_range *head; + struct block_range *tail; +}; + +void add_blocks_to_range(struct block_range_list *list, blk64_t blk_start, + blk64_t blk_end); +void delete_block_ranges(struct block_range_list *list); int write_block_ranges(FILE *f, struct block_range *range, char *sep); +/* + * Given a non-empty range list, return the next block and remove it from the + * list. + */ +blk64_t consume_next_block(struct block_range_list *list); + #endif /* !BLOCK_RANGE_H */ diff --git a/contrib/android/e2fsdroid.c b/contrib/android/e2fsdroid.c index 3264a99fb..1beb1e25b 100644 --- a/contrib/android/e2fsdroid.c +++ b/contrib/android/e2fsdroid.c @@ -301,7 +301,8 @@ int main(int argc, char *argv[]) if (src_dir) { ext2fs_read_bitmaps(fs); if (basefs_in) { - retval = base_fs_alloc_load(fs, basefs_in, mountpoint); + retval = base_fs_alloc_load(fs, basefs_in, mountpoint, + src_dir); if (retval) { com_err(prog_name, retval, "%s", "while reading base_fs file"); diff --git a/debian/compat b/debian/compat index b4de39476..48082f72f 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -11 +12 diff --git a/e2fsck/extents.c b/e2fsck/extents.c index 3073725ab..e9af1bbeb 100644 --- a/e2fsck/extents.c +++ b/e2fsck/extents.c @@ -264,7 +264,7 @@ extents_loaded: goto err; ext_written = 0; - start_val = ext2fs_inode_i_blocks(ctx->fs, EXT2_INODE(&inode)); + start_val = ext2fs_get_stat_i_blocks(ctx->fs, EXT2_INODE(&inode)); for (i = 0, ex = list->extents; i < list->count; i++, ex++) { memcpy(&extent, ex, sizeof(struct ext2fs_extent)); extent.e_flags &= EXT2_EXTENT_FLAGS_UNINIT; @@ -302,15 +302,10 @@ extents_loaded: ext_written++; } - delta = ext2fs_inode_i_blocks(ctx->fs, EXT2_INODE(&inode)) - start_val; - if (delta) { - if (!ext2fs_has_feature_huge_file(ctx->fs->super) || - !(inode.i_flags & EXT4_HUGE_FILE_FL)) - delta <<= 9; - else - delta *= ctx->fs->blocksize; - quota_data_add(ctx->qctx, &inode, ino, delta); - } + delta = ext2fs_get_stat_i_blocks(ctx->fs, EXT2_INODE(&inode)) - + start_val; + if (delta) + quota_data_add(ctx->qctx, &inode, ino, delta << 9); #if defined(DEBUG) || defined(DEBUG_SUMMARY) printf("rebuild: ino=%d extents=%d->%d\n", ino, list->ext_read, diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 14adba95a..a57c1c067 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -1171,6 +1171,7 @@ void e2fsck_pass1(e2fsck_t ctx) struct scan_callback_struct scan_struct; struct ext2_super_block *sb = ctx->fs->super; const char *old_op; + const char *eop_next_inode = _("getting next inode from scan"); int imagic_fs, extent_fs, inlinedata_fs, casefold_fs; int low_dtime_check = 1; unsigned int inode_size = EXT2_INODE_SIZE(fs->super); @@ -1363,7 +1364,7 @@ void e2fsck_pass1(e2fsck_t ctx) if (e2fsck_mmp_update(fs)) fatal_error(ctx, 0); } - old_op = ehandler_operation(_("getting next inode from scan")); + old_op = ehandler_operation(eop_next_inode); pctx.errcode = ext2fs_get_next_inode_full(scan, &ino, inode, inode_size); if (ino > ino_threshold) diff --git a/e2fsck/pass1b.c b/e2fsck/pass1b.c index 5693b9cfc..bca701cab 100644 --- a/e2fsck/pass1b.c +++ b/e2fsck/pass1b.c @@ -705,6 +705,10 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino, fix_problem(ctx, PR_1B_BLOCK_ITERATE, &pctx); if (ctx->inode_bad_map) ext2fs_unmark_inode_bitmap2(ctx->inode_bad_map, ino); + if (ctx->inode_reg_map) + ext2fs_unmark_inode_bitmap2(ctx->inode_reg_map, ino); + ext2fs_unmark_inode_bitmap2(ctx->inode_dir_map, ino); + ext2fs_unmark_inode_bitmap2(ctx->inode_used_map, ino); ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(dp->inode.i_mode)); quota_data_sub(ctx->qctx, &dp->inode, ino, pb.dup_blocks * fs->blocksize); diff --git a/e2fsck/pass2.c b/e2fsck/pass2.c index 306373bf7..d3f210172 100644 --- a/e2fsck/pass2.c +++ b/e2fsck/pass2.c @@ -996,6 +996,7 @@ static int check_dir_block(ext2_filsys fs, __u32 dir_encpolicy_id = NO_ENCRYPTION_POLICY; size_t max_block_size; int hash_flags = 0; + static char *eop_read_dirblock = NULL; cd = (struct check_dir_struct *) priv_data; ibuf = buf = cd->buf; @@ -1066,7 +1067,9 @@ static int check_dir_block(ext2_filsys fs, db->blockcnt, ino); #endif - ehandler_operation(_("reading directory block")); + if (!eop_read_dirblock) + eop_read_dirblock = (char *) _("reading directory block"); + ehandler_operation(eop_read_dirblock); if (inline_data_size) { memset(buf, 0, fs->blocksize - inline_data_size); cd->pctx.errcode = ext2fs_inline_data_get(fs, ino, 0, buf, 0); diff --git a/e2fsck/rehash.c b/e2fsck/rehash.c index a5fc1be1a..54bc68038 100644 --- a/e2fsck/rehash.c +++ b/e2fsck/rehash.c @@ -160,6 +160,10 @@ static int fill_dir_block(ext2_filsys fs, dir_offset += rec_len; if (dirent->inode == 0) continue; + if ((name_len) == 0) { + fd->err = EXT2_ET_DIR_CORRUPTED; + return BLOCK_ABORT; + } if (!fd->compress && (name_len == 1) && (dirent->name[0] == '.')) continue; @@ -272,7 +276,11 @@ static errcode_t alloc_size_dir(ext2_filsys fs, struct out_dir *outdir, outdir->hashes = new_mem; } else { outdir->buf = malloc(blocks * fs->blocksize); + if (!outdir->buf) + return ENOMEM; outdir->hashes = malloc(blocks * sizeof(ext2_dirhash_t)); + if (!outdir->hashes) + return ENOMEM; outdir->num = 0; } outdir->max = blocks; @@ -293,7 +301,11 @@ static errcode_t get_next_block(ext2_filsys fs, struct out_dir *outdir, errcode_t retval; if (outdir->num >= outdir->max) { - retval = alloc_size_dir(fs, outdir, outdir->max + 50); + int increment = outdir->max / 10; + + if (increment < 50) + increment = 50; + retval = alloc_size_dir(fs, outdir, outdir->max + increment); if (retval) return retval; } @@ -401,6 +413,11 @@ static int duplicate_search_and_fix(e2fsck_t ctx, ext2_filsys fs, continue; } new_len = ext2fs_dirent_name_len(ent->dir); + if (new_len == 0) { + /* should never happen */ + ext2fs_unmark_valid(fs); + continue; + } memcpy(new_name, ent->dir->name, new_len); mutate_name(new_name, &new_len); for (j=0; j < fd->num_array; j++) { @@ -632,6 +649,9 @@ static int alloc_blocks(ext2_filsys fs, if (retval) return retval; + /* outdir->buf might be reallocated */ + *prev_ent = (struct ext2_dx_entry *) (outdir->buf + *prev_offset); + *next_ent = set_int_node(fs, block_start); *limit = (struct ext2_dx_countlimit *)(*next_ent); if (next_offset) @@ -721,6 +741,9 @@ static errcode_t calculate_tree(ext2_filsys fs, return retval; } if (c3 == 0) { + int delta1 = (char *)int_limit - outdir->buf; + int delta2 = (char *)root - outdir->buf; + retval = alloc_blocks(fs, &limit, &int_ent, &dx_ent, &int_offset, NULL, outdir, i, &c2, @@ -728,6 +751,11 @@ static errcode_t calculate_tree(ext2_filsys fs, if (retval) return retval; + /* outdir->buf might be reallocated */ + int_limit = (struct ext2_dx_countlimit *) + (outdir->buf + delta1); + root = (struct ext2_dx_entry *) + (outdir->buf + delta2); } dx_ent->block = ext2fs_cpu_to_le32(i); if (c3 != limit->limit) @@ -1019,6 +1047,8 @@ void e2fsck_rehash_directories(e2fsck_t ctx) if (!ext2fs_u32_list_iterate(iter, &ino)) break; } + if (!ext2fs_test_inode_bitmap2(ctx->inode_dir_map, ino)) + continue; pctx.dir = ino; if (first) { diff --git a/e2fsck/super.c b/e2fsck/super.c index e5932be60..18affcf72 100644 --- a/e2fsck/super.c +++ b/e2fsck/super.c @@ -1038,7 +1038,7 @@ void check_super_block(e2fsck_t ctx) * Check to see if the superblock last mount time or last * write time is in the future. */ - if (!broken_system_clock && + if (!broken_system_clock && fs->super->s_checkinterval && !(ctx->flags & E2F_FLAG_TIME_INSANE) && fs->super->s_mtime > (__u32) ctx->now) { pctx.num = fs->super->s_mtime; @@ -1050,7 +1050,7 @@ void check_super_block(e2fsck_t ctx) fs->flags |= EXT2_FLAG_DIRTY; } } - if (!broken_system_clock && + if (!broken_system_clock && fs->super->s_checkinterval && !(ctx->flags & E2F_FLAG_TIME_INSANE) && fs->super->s_wtime > (__u32) ctx->now) { pctx.num = fs->super->s_wtime; diff --git a/lib/Android.bp b/lib/Android.bp index 771bb5985..77f69da77 100644 --- a/lib/Android.bp +++ b/lib/Android.bp @@ -6,6 +6,7 @@ cc_library_headers { name: "libext2-headers", host_supported: true, + vendor_available: true, recovery_available: true, target: { windows: { diff --git a/lib/ext2fs/blknum.c b/lib/ext2fs/blknum.c index 18af3408f..7c3c6b5a1 100644 --- a/lib/ext2fs/blknum.c +++ b/lib/ext2fs/blknum.c @@ -86,6 +86,22 @@ blk64_t ext2fs_inode_i_blocks(ext2_filsys fs, } /* + * Return the inode i_blocks in stat (512 byte) units + */ +blk64_t ext2fs_get_stat_i_blocks(ext2_filsys fs, + struct ext2_inode *inode) +{ + blk64_t ret = inode->i_blocks; + + if (ext2fs_has_feature_huge_file(fs->super)) { + ret += ((long long) inode->osd2.linux2.l_i_blocks_hi) << 32; + if (inode->i_flags & EXT4_HUGE_FILE_FL) + ret *= (fs->blocksize / 512); + } + return ret; +} + +/* * Return the fs block count */ blk64_t ext2fs_blocks_count(struct ext2_super_block *super) @@ -554,6 +570,9 @@ void ext2fs_file_acl_block_set(ext2_filsys fs, struct ext2_inode *inode, errcode_t ext2fs_inode_size_set(ext2_filsys fs, struct ext2_inode *inode, ext2_off64_t size) { + if (size < 0) + return EINVAL; + /* Only regular files get to be larger than 4GB */ if (!LINUX_S_ISREG(inode->i_mode) && (size >> 32)) return EXT2_ET_FILE_TOO_BIG; diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h index da3099477..93ecf29c5 100644 --- a/lib/ext2fs/ext2fs.h +++ b/lib/ext2fs/ext2fs.h @@ -77,8 +77,8 @@ typedef __u32 __bitwise ext2_ino_t; typedef __u32 __bitwise blk_t; typedef __u64 __bitwise blk64_t; typedef __u32 __bitwise dgrp_t; -typedef __u32 __bitwise ext2_off_t; -typedef __u64 __bitwise ext2_off64_t; +typedef __s32 __bitwise ext2_off_t; +typedef __s64 __bitwise ext2_off64_t; typedef __s64 __bitwise e2_blkcnt_t; typedef __u32 __bitwise ext2_dirhash_t; @@ -910,7 +910,9 @@ extern int ext2fs_group_blocks_count(ext2_filsys fs, dgrp_t group); extern blk64_t ext2fs_inode_data_blocks2(ext2_filsys fs, struct ext2_inode *inode); extern blk64_t ext2fs_inode_i_blocks(ext2_filsys fs, - struct ext2_inode *inode); + struct ext2_inode *inode); +extern blk64_t ext2fs_get_stat_i_blocks(ext2_filsys fs, + struct ext2_inode *inode); extern blk64_t ext2fs_blocks_count(struct ext2_super_block *super); extern void ext2fs_blocks_count_set(struct ext2_super_block *super, blk64_t blk); diff --git a/lib/ext2fs/ext_attr.c b/lib/ext2fs/ext_attr.c index affc1a8fc..871319a5a 100644 --- a/lib/ext2fs/ext_attr.c +++ b/lib/ext2fs/ext_attr.c @@ -924,8 +924,8 @@ static errcode_t read_xattrs_from_buffer(struct ext2_xattr_handle *handle, !(ea_inode->i_flags & EXT4_EA_INODE_FL) || ea_inode->i_links_count == 0) err = EXT2_ET_EA_INODE_CORRUPTED; - else if (ext2fs_file_get_size(ea_file) != - entry->e_value_size) + else if ((__u64) ext2fs_file_get_size(ea_file) != + entry->e_value_size) err = EXT2_ET_EA_BAD_VALUE_SIZE; else err = ext2fs_file_read(ea_file, x->value, diff --git a/lib/ext2fs/inode_io.c b/lib/ext2fs/inode_io.c index f3d94c89d..d7474a6d3 100644 --- a/lib/ext2fs/inode_io.c +++ b/lib/ext2fs/inode_io.c @@ -215,9 +215,9 @@ static errcode_t inode_read_blk64(io_channel channel, data = (struct inode_private_data *) channel->private_data; EXT2_CHECK_MAGIC(data, EXT2_ET_MAGIC_INODE_IO_CHANNEL); - if ((retval = ext2fs_file_lseek(data->file, - block * channel->block_size, - EXT2_SEEK_SET, 0))) + if ((retval = ext2fs_file_llseek(data->file, + (ext2_off64_t)(block * channel->block_size), + EXT2_SEEK_SET, 0))) return retval; count = (count < 0) ? -count : (count * channel->block_size); @@ -241,9 +241,9 @@ static errcode_t inode_write_blk64(io_channel channel, data = (struct inode_private_data *) channel->private_data; EXT2_CHECK_MAGIC(data, EXT2_ET_MAGIC_INODE_IO_CHANNEL); - if ((retval = ext2fs_file_lseek(data->file, - block * channel->block_size, - EXT2_SEEK_SET, 0))) + if ((retval = ext2fs_file_llseek(data->file, + (ext2_off64_t) (block * channel->block_size), + EXT2_SEEK_SET, 0))) return retval; count = (count < 0) ? -count : (count * channel->block_size); diff --git a/lib/ext2fs/qcow2.c b/lib/ext2fs/qcow2.c index 71a4792fc..ee701f7a3 100644 --- a/lib/ext2fs/qcow2.c +++ b/lib/ext2fs/qcow2.c @@ -114,7 +114,7 @@ static int qcow2_read_l1_table(struct ext2_qcow2_image *img) } static int qcow2_read_l2_table(struct ext2_qcow2_image *img, - ext2_off64_t offset, blk64_t **l2_table) + __u64 offset, blk64_t **l2_table) { int fd = img->fd; size_t size; @@ -131,8 +131,8 @@ static int qcow2_read_l2_table(struct ext2_qcow2_image *img, return 0; } -static int qcow2_copy_data(int fdin, int fdout, ext2_off64_t off_in, - ext2_off64_t off_out, void *buf, size_t count) +static int qcow2_copy_data(int fdin, int fdout, __u64 off_in, + __u64 off_out, void *buf, size_t count) { size_t size; @@ -162,7 +162,7 @@ int qcow2_write_raw_image(int qcow2_fd, int raw_fd, struct ext2_qcow2_image img; errcode_t ret = 0; unsigned int l1_index, l2_index; - ext2_off64_t offset; + __u64 offset; blk64_t *l1_table, *l2_table = NULL; void *copy_buf = NULL; size_t size; @@ -212,7 +212,7 @@ int qcow2_write_raw_image(int qcow2_fd, int raw_fd, l1_table = img.l1_table; /* Walk through l1 table */ for (l1_index = 0; l1_index < img.l1_size; l1_index++) { - ext2_off64_t off_out; + __u64 off_out; offset = ext2fs_be64_to_cpu(l1_table[l1_index]) & ~QCOW_OFLAG_COPIED; diff --git a/lib/support/mkquota.c b/lib/support/mkquota.c index ddb531247..6f7ae6d6a 100644 --- a/lib/support/mkquota.c +++ b/lib/support/mkquota.c @@ -503,8 +503,8 @@ errcode_t quota_compute_usage(quota_ctx_t qctx) if (inode->i_links_count && (ino == EXT2_ROOT_INO || ino >= EXT2_FIRST_INODE(fs->super))) { - space = ext2fs_inode_i_blocks(fs, - EXT2_INODE(inode)) << 9; + space = ext2fs_get_stat_i_blocks(fs, + EXT2_INODE(inode)) << 9; quota_data_add(qctx, inode, ino, space); quota_data_inodes(qctx, inode, ino, +1); } diff --git a/lib/uuid/Android.bp b/lib/uuid/Android.bp index ea349e3e6..7d4dfcacc 100644 --- a/lib/uuid/Android.bp +++ b/lib/uuid/Android.bp @@ -4,6 +4,7 @@ cc_library { name: "libext2_uuid", host_supported: true, recovery_available: true, + vendor_available: true, unique_host_soname: true, defaults: ["e2fsprogs-defaults"], srcs: [ diff --git a/misc/create_inode.c b/misc/create_inode.c index 0091b7237..5161d5e39 100644 --- a/misc/create_inode.c +++ b/misc/create_inode.c @@ -121,7 +121,9 @@ static errcode_t set_inode_extra(ext2_filsys fs, ext2_ino_t ino, } inode.i_uid = st->st_uid; + ext2fs_set_i_uid_high(inode, st->st_uid >> 16); inode.i_gid = st->st_gid; + ext2fs_set_i_gid_high(inode, st->st_gid >> 16); inode.i_mode |= st->st_mode; inode.i_atime = st->st_atime; inode.i_mtime = st->st_mtime; diff --git a/misc/e2image.8.in b/misc/e2image.8.in index bbbb57ae7..ef1248674 100644 --- a/misc/e2image.8.in +++ b/misc/e2image.8.in @@ -8,10 +8,12 @@ e2image \- Save critical ext2/ext3/ext4 filesystem metadata to a file .SH SYNOPSIS .B e2image [ -.B \-r|Q +.B \-r|\-Q ] [ .B \-f +] +[ .B \-b .I superblock ] @@ -19,9 +21,6 @@ e2image \- Save critical ext2/ext3/ext4 filesystem metadata to a file .B \-B .I blocksize ] -[ -.B \-fr -] .I device .I image-file .br diff --git a/misc/e2image.c b/misc/e2image.c index 30f25432a..56183ad6f 100644 --- a/misc/e2image.c +++ b/misc/e2image.c @@ -104,11 +104,11 @@ static int get_bits_from_size(size_t size) static void usage(void) { - fprintf(stderr, _("Usage: %s [ -r|Q ] [ -f ] [ -b superblock ] [ -B blocksize]" - "[ -fr ] device image-file\n"), + fprintf(stderr, _("Usage: %s [ -r|-Q ] [ -f ] [ -b superblock ] [ -B blocksize ] " + "device image-file\n"), program_name); fprintf(stderr, _(" %s -I device image-file\n"), program_name); - fprintf(stderr, _(" %s -ra [ -cfnp ] [ -o src_offset ] " + fprintf(stderr, _(" %s -ra [ -cfnp ] [ -o src_offset ] " "[ -O dest_offset ] src_fs [ dest_fs ]\n"), program_name); exit (1); diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c index dc7a03920..b385d3393 100644 --- a/misc/fuse2fs.c +++ b/misc/fuse2fs.c @@ -649,8 +649,8 @@ static int check_inum_access(ext2_filsys fs, ext2_ino_t ino, mode_t mask) dbg_printf("access ino=%d mask=e%s%s%s perms=0%o fuid=%d fgid=%d " "uid=%d gid=%d\n", ino, (mask & R_OK ? "r" : ""), (mask & W_OK ? "w" : ""), - (mask & X_OK ? "x" : ""), perms, inode.i_uid, inode.i_gid, - ctxt->uid, ctxt->gid); + (mask & X_OK ? "x" : ""), perms, inode_uid(inode), + inode_gid(inode), ctxt->uid, ctxt->gid); /* existence check */ if (mask == 0) @@ -680,14 +680,14 @@ static int check_inum_access(ext2_filsys fs, ext2_ino_t ino, mode_t mask) } /* allow owner, if perms match */ - if (inode.i_uid == ctxt->uid) { + if (inode_uid(inode) == ctxt->uid) { if ((mask & (perms >> 6)) == mask) return 0; return -EACCES; } /* allow group, if perms match */ - if (inode.i_gid == ctxt->gid) { + if (inode_gid(inode) == ctxt->gid) { if ((mask & (perms >> 3)) == mask) return 0; return -EACCES; @@ -755,23 +755,6 @@ static void *op_init(struct fuse_conn_info *conn) return ff; } -static blkcnt_t blocks_from_inode(ext2_filsys fs, - struct ext2_inode_large *inode) -{ - blkcnt_t b; - - b = inode->i_blocks; - if (ext2fs_has_feature_huge_file(fs->super)) - b += ((long long) inode->osd2.linux2.l_i_blocks_hi) << 32; - - if (!ext2fs_has_feature_huge_file(fs->super) || - !(inode->i_flags & EXT4_HUGE_FILE_FL)) - b *= fs->blocksize / 512; - b *= EXT2FS_CLUSTER_RATIO(fs); - - return b; -} - static int stat_inode(ext2_filsys fs, ext2_ino_t ino, struct stat *statbuf) { struct ext2_inode_large inode; @@ -791,11 +774,12 @@ static int stat_inode(ext2_filsys fs, ext2_ino_t ino, struct stat *statbuf) statbuf->st_ino = ino; statbuf->st_mode = inode.i_mode; statbuf->st_nlink = inode.i_links_count; - statbuf->st_uid = inode.i_uid; - statbuf->st_gid = inode.i_gid; + statbuf->st_uid = inode_uid(inode); + statbuf->st_gid = inode_gid(inode); statbuf->st_size = EXT2_I_SIZE(&inode); statbuf->st_blksize = fs->blocksize; - statbuf->st_blocks = blocks_from_inode(fs, &inode); + statbuf->st_blocks = ext2fs_get_stat_i_blocks(fs, + (struct ext2_inode *)&inode); EXT4_INODE_GET_XTIME(i_atime, &tv, &inode); statbuf->st_atime = tv.tv_sec; EXT4_INODE_GET_XTIME(i_mtime, &tv, &inode); @@ -1015,7 +999,9 @@ static int op_mknod(const char *path, mode_t mode, dev_t dev) inode.i_extra_isize = sizeof(struct ext2_inode_large) - EXT2_GOOD_OLD_INODE_SIZE; inode.i_uid = ctxt->uid; + ext2fs_set_i_uid_high(inode, ctxt->uid >> 16); inode.i_gid = ctxt->gid; + ext2fs_set_i_gid_high(inode, ctxt->gid >> 16); err = ext2fs_write_new_inode(fs, child, (struct ext2_inode *)&inode); if (err) { @@ -1139,7 +1125,9 @@ static int op_mkdir(const char *path, mode_t mode) } inode.i_uid = ctxt->uid; + ext2fs_set_i_uid_high(inode, ctxt->uid >> 16); inode.i_gid = ctxt->gid; + ext2fs_set_i_gid_high(inode, ctxt->gid >> 16); inode.i_mode = LINUX_S_IFDIR | (mode & ~(S_ISUID | fs->umask)) | parent_sgid; inode.i_generation = ff->next_generation++; @@ -1512,7 +1500,9 @@ static int op_symlink(const char *src, const char *dest) } inode.i_uid = ctxt->uid; + ext2fs_set_i_uid_high(inode, ctxt->uid >> 16); inode.i_gid = ctxt->gid; + ext2fs_set_i_gid_high(inode, ctxt->gid >> 16); inode.i_generation = ff->next_generation++; err = ext2fs_write_inode_full(fs, child, (struct ext2_inode *)&inode, @@ -1908,7 +1898,7 @@ static int op_chmod(const char *path, mode_t mode) goto out; } - if (!ff->fakeroot && ctxt->uid != 0 && ctxt->uid != inode.i_uid) { + if (!ff->fakeroot && ctxt->uid != 0 && ctxt->uid != inode_uid(inode)) { ret = -EPERM; goto out; } @@ -1918,7 +1908,7 @@ static int op_chmod(const char *path, mode_t mode) * of the user's groups, but FUSE only tells us about the primary * group. */ - if (!ff->fakeroot && ctxt->uid != 0 && ctxt->gid != inode.i_gid) + if (!ff->fakeroot && ctxt->uid != 0 && ctxt->gid != inode_gid(inode)) mode &= ~S_ISGID; inode.i_mode &= ~0xFFF; @@ -1972,22 +1962,25 @@ static int op_chown(const char *path, uid_t owner, gid_t group) if (owner != (uid_t) ~0) { /* Only root gets to change UID. */ if (!ff->fakeroot && ctxt->uid != 0 && - !(inode.i_uid == ctxt->uid && owner == ctxt->uid)) { + !(inode_uid(inode) == ctxt->uid && owner == ctxt->uid)) { ret = -EPERM; goto out; } inode.i_uid = owner; + ext2fs_set_i_uid_high(inode, owner >> 16); } if (group != (gid_t) ~0) { /* Only root or the owner get to change GID. */ - if (!ff->fakeroot && ctxt->uid != 0 && inode.i_uid != ctxt->uid) { + if (!ff->fakeroot && ctxt->uid != 0 && + inode_uid(inode) != ctxt->uid) { ret = -EPERM; goto out; } /* XXX: We /should/ check group membership but FUSE */ inode.i_gid = group; + ext2fs_set_i_gid_high(inode, group >> 16); } ret = update_ctime(fs, ino, &inode); @@ -2915,7 +2908,9 @@ static int op_create(const char *path, mode_t mode, struct fuse_file_info *fp) inode.i_extra_isize = sizeof(struct ext2_inode_large) - EXT2_GOOD_OLD_INODE_SIZE; inode.i_uid = ctxt->uid; + ext2fs_set_i_uid_high(inode, ctxt->uid >> 16); inode.i_gid = ctxt->gid; + ext2fs_set_i_gid_high(inode, ctxt->gid >> 16); if (ext2fs_has_feature_extents(fs->super)) { ext2_extent_handle_t handle; @@ -3133,7 +3128,7 @@ static int ioctl_setflags(ext2_filsys fs, struct fuse2fs_file_handle *fh, if (err) return translate_error(fs, fh->ino, err); - if (!ff->fakeroot && ctxt->uid != 0 && inode.i_uid != ctxt->uid) + if (!ff->fakeroot && ctxt->uid != 0 && inode_uid(inode) != ctxt->uid) return -EPERM; if ((inode.i_flags ^ flags) & ~FUSE2FS_MODIFIABLE_IFLAGS) @@ -3190,7 +3185,7 @@ static int ioctl_setversion(ext2_filsys fs, struct fuse2fs_file_handle *fh, if (err) return translate_error(fs, fh->ino, err); - if (!ff->fakeroot && ctxt->uid != 0 && inode.i_uid != ctxt->uid) + if (!ff->fakeroot && ctxt->uid != 0 && inode_uid(inode) != ctxt->uid) return -EPERM; inode.i_generation = generation; diff --git a/misc/mke2fs.c b/misc/mke2fs.c index ffea8233b..be38d2c4f 100644 --- a/misc/mke2fs.c +++ b/misc/mke2fs.c @@ -344,7 +344,7 @@ _("Warning: the backup superblock/group descriptors at block %u contain\n" exit(1); } while (ext2fs_badblocks_list_iterate(bb_iter, &blk)) - ext2fs_mark_block_bitmap2(fs->block_map, EXT2FS_B2C(fs, blk)); + ext2fs_mark_block_bitmap2(fs->block_map, blk); ext2fs_badblocks_list_iterate_end(bb_iter); } @@ -77,7 +77,7 @@ msgstr "" "Project-Id-Version: e2fsprogs 1.45.3\n" "Report-Msgid-Bugs-To: tytso@alum.mit.edu\n" "POT-Creation-Date: 2019-07-14 20:56-0400\n" -"PO-Revision-Date: 2019-09-01 22:24+0800\n" +"PO-Revision-Date: 2019-12-27 12:44+0800\n" "Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n" "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n" "Language: ms\n" @@ -86,7 +86,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.2.3\n" +"X-Generator: Poedit 2.2.4\n" #: e2fsck/badblocks.c:23 misc/mke2fs.c:220 #, c-format @@ -384,7 +384,7 @@ msgstr "" #: e2fsck/message.c:140 #, fuzzy msgid "rroot @i" -msgstr "<i>(tiada cadangan)</i>" +msgstr "@u @z @i %i. " #: e2fsck/message.c:141 #, fuzzy @@ -542,7 +542,7 @@ msgstr "" #, fuzzy #| msgid "unknown os - %s" msgid "unknown quota type" -msgstr "%s mempunyai jenis fail yang tidak diketahui" +msgstr "Jenis kandungan struktur PKCS tidak diketahui." #: e2fsck/pass1b.c:222 msgid "multiply claimed inode map" @@ -590,7 +590,7 @@ msgstr "Peta terjemahan: sintaks tidak betul" #: e2fsck/pass1.c:1245 #, fuzzy msgid "regular file inode map" -msgstr "Mencipta fail biasa %s\n" +msgstr "fail kosong biasa" #: e2fsck/pass1.c:1254 misc/e2image.c:1282 #, fuzzy @@ -723,9 +723,7 @@ msgstr "Auto simpan ketika keluar, jangan maklum" #: e2fsck/problem.c:53 #, fuzzy msgid "Fix" -msgstr "" -"Tidak dapat membaiki induk untuk @i %i: %m\n" -"\n" +msgstr "pembetulan boleh diterapkan. Ulang laksana dengan pilihan '--update'." #: e2fsck/problem.c:54 #, fuzzy @@ -1026,7 +1024,7 @@ msgstr "" #: e2fsck/problem.c:180 #, fuzzy msgid "Corruption found in @S. (%s = %N).\n" -msgstr "%s: `%s': padanan tak dijumpai" +msgstr "Hujah sah adalah nombor bulat n seperti: %s\n" #. @-expanded: Error determining size of the physical device: %m\n #: e2fsck/problem.c:186 @@ -1403,7 +1401,7 @@ msgstr "" #: e2fsck/problem.c:512 #, fuzzy msgid "Invalid %U @q @i %i. " -msgstr "@i %i (%Q) adalah @I FIFO.\n" +msgstr "@u @z @i %i. " #. @-expanded: superblock would have too many inodes (%N).\n #: e2fsck/problem.c:517 @@ -1456,7 +1454,7 @@ msgstr "" #: e2fsck/problem.c:562 #, fuzzy, no-c-format msgid "@i %i is a @z @d. " -msgstr "/@l adalah bukan sejenis @d (ino=%i)\n" +msgstr "@u @z @i %i. " #. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n #: e2fsck/problem.c:567 @@ -1726,7 +1724,7 @@ msgstr "" #: e2fsck/problem.c:806 #, fuzzy msgid "@j is not regular file. " -msgstr "Mencipta fail biasa %s\n" +msgstr "fail kosong biasa" #. @-expanded: inode %i was part of the orphaned inode list. #: e2fsck/problem.c:812 @@ -2239,7 +2237,7 @@ msgstr "" #: e2fsck/problem.c:1288 e2fsck/problem.c:1663 #, fuzzy msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n" -msgstr "Ralat membaca @d @b %b (@i %i): %m\n" +msgstr "Ralat menyalin dalam penggantian @i @B: %m\n" #. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n #: e2fsck/problem.c:1298 @@ -2291,9 +2289,7 @@ msgstr "" #: e2fsck/problem.c:1344 #, fuzzy, no-c-format msgid "Couldn't clone file: %m\n" -msgstr "" -"Tidak dapat membaiki induk untuk @i %i: %m\n" -"\n" +msgstr "Tidak dapat membuka fail profil" #. @-expanded: Pass 1E: Optimizing extent trees\n #: e2fsck/problem.c:1350 @@ -2358,7 +2354,7 @@ msgstr "" #: e2fsck/problem.c:1414 #, fuzzy msgid "@E @L to '.' " -msgstr "/@l tidak dijumpai." +msgstr "@E adalah salinan '.' @e.\n" #. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n #: e2fsck/problem.c:1419 @@ -2927,15 +2923,15 @@ msgstr "" #. @-expanded: unattached zero-length inode %i. #: e2fsck/problem.c:1970 -#, fuzzy, no-c-format +#, no-c-format msgid "@u @z @i %i. " -msgstr "<i>(tiada cadangan)</i>" +msgstr "@u @z @i %i. " #. @-expanded: unattached inode %i\n #: e2fsck/problem.c:1976 -#, fuzzy, no-c-format +#, no-c-format msgid "@u @i %i\n" -msgstr "<i>(tiada cadangan)</i>" +msgstr "@u @i %i\n" #. @-expanded: inode %i ref count is %Il, should be %N. #: e2fsck/problem.c:1981 @@ -2956,7 +2952,7 @@ msgstr "" #: e2fsck/problem.c:1992 #, fuzzy msgid "@a @i %i ref count is %N, @s %n. " -msgstr "i_blocks_hi @F %N, @s sifar.\n" +msgstr "i_frag @F %N, @s sifar.\n" #. @-expanded: directory exceeds max links, but no DIR_NLINK feature in superblock.\n #: e2fsck/problem.c:1997 @@ -3226,7 +3222,7 @@ msgstr[0] "ketika menetapkan inod blok buruk" #, fuzzy, c-format msgid "%12u large file\n" msgid_plural "%12u large files\n" -msgstr[0] "%s adalah terlalu besar" +msgstr[0] "%12u fifo\n" #: e2fsck/unix.c:202 #, fuzzy, c-format @@ -3236,13 +3232,13 @@ msgid "" msgid_plural "" "\n" "%12u regular files\n" -msgstr[0] "Mencipta fail biasa %s\n" +msgstr[0] "fail biasa" #: e2fsck/unix.c:204 #, fuzzy, c-format msgid "%12u directory\n" msgid_plural "%12u directories\n" -msgstr[0] "direktori" +msgstr[0] "%12u fifo\n" #: e2fsck/unix.c:206 #, fuzzy, c-format @@ -3257,16 +3253,16 @@ msgid_plural "%12u block device files\n" msgstr[0] "%s adalah bukan peranti khas.\n" #: e2fsck/unix.c:211 -#, fuzzy, c-format +#, c-format msgid "%12u fifo\n" msgid_plural "%12u fifos\n" -msgstr[0] "fifo" +msgstr[0] "%12u fifo\n" #: e2fsck/unix.c:213 #, fuzzy, c-format msgid "%12u link\n" msgid_plural "%12u links\n" -msgstr[0] "Pautan ke %s\n" +msgstr[0] "%12u fifo\n" #: e2fsck/unix.c:215 #, fuzzy, c-format @@ -3284,13 +3280,13 @@ msgstr[0] "pautan simbolik" #, fuzzy, c-format msgid "%12u socket\n" msgid_plural "%12u sockets\n" -msgstr[0] "soket" +msgstr[0] "%12u fifo\n" #: e2fsck/unix.c:225 #, fuzzy, c-format msgid "%12u file\n" msgid_plural "%12u files\n" -msgstr[0] " Fail: ..." +msgstr[0] "%12u fifo\n" #: e2fsck/unix.c:238 misc/badblocks.c:1002 misc/tune2fs.c:2986 misc/util.c:129 #: resize/main.c:354 @@ -3301,7 +3297,7 @@ msgstr "ketika menentukan sama ada %s telah dilekapkan." #: e2fsck/unix.c:259 #, fuzzy, c-format msgid "Warning! %s is mounted.\n" -msgstr "\tterakhir dilekapkan pada %s" +msgstr "\tterakhir dilekapkan pada %s pada %s" #: e2fsck/unix.c:262 #, fuzzy, c-format @@ -3778,9 +3774,8 @@ msgid "nN" msgstr "tTnN" #: e2fsck/util.c:198 -#, fuzzy msgid "aA" -msgstr "Ss" +msgstr "aA" #: e2fsck/util.c:202 #, fuzzy @@ -3788,9 +3783,8 @@ msgid " ('a' enables 'yes' to all) " msgstr "Semua" #: e2fsck/util.c:219 -#, fuzzy msgid "<y>" -msgstr "\t\tY: " +msgstr "<y>" #: e2fsck/util.c:221 #, fuzzy @@ -3942,7 +3936,7 @@ msgstr "" #: misc/badblocks.c:337 #, fuzzy msgid "Testing with random pattern: " -msgstr "Menyemai penjana nombor rawak..." +msgstr "Gagal untuk mendapatkan data rawak." #: misc/badblocks.c:355 #, fuzzy @@ -4423,13 +4417,15 @@ msgstr "(0x%x, '%s') " #: misc/dumpe2fs.c:263 msgid "," -msgstr "" +msgstr "," #: misc/dumpe2fs.c:265 msgid "" "\n" " " msgstr "" +"\n" +" " #: misc/dumpe2fs.c:266 #, fuzzy @@ -4795,7 +4791,7 @@ msgstr "" #: misc/e2image.c:1663 #, fuzzy msgid "Can not stat output\n" -msgstr "Keluaran:\n" +msgstr "ketika cuba untuk stat %s" #: misc/e2image.c:1673 #, fuzzy, c-format @@ -4999,7 +4995,7 @@ msgstr "ketika membuka %s" #: misc/e2undo.c:466 #, fuzzy msgid "specified offset is too large" -msgstr "%s adalah terlalu besar" +msgstr "nombor token terlalu besar" #: misc/e2undo.c:507 #, fuzzy @@ -5324,7 +5320,7 @@ msgstr "" #: misc/mke2fs.c:343 #, fuzzy msgid "while marking bad blocks as used" -msgstr "ketika membaca dalam senarai blok buruk dari fail" +msgstr "ketika memeriksa kewarasan blok inode buruk" #: misc/mke2fs.c:368 #, fuzzy @@ -5442,7 +5438,7 @@ msgstr "Saiz blok=%u (log=%u)\n" #: misc/mke2fs.c:686 #, fuzzy, c-format msgid "Cluster size=%u (log=%u)\n" -msgstr "Saiz blok=%u (log=%u)\n" +msgstr "Saiz pecahan=%u (log=%u)\n" #: misc/mke2fs.c:690 #, c-format @@ -5695,7 +5691,7 @@ msgstr "" #: misc/mke2fs.c:1661 #, fuzzy, c-format msgid "invalid cluster size - %s" -msgstr "saiz blok tidak sah - %s" +msgstr "saiz pecahan tidak sah - %s" #: misc/mke2fs.c:1674 msgid "'-R' is deprecated, use '-E' instead" @@ -6218,7 +6214,7 @@ msgstr "" #: misc/mk_hugefiles.c:583 #, fuzzy msgid "Huge files will be zero'ed\n" -msgstr "Salinan fail" +msgstr " %d fail," #: misc/mk_hugefiles.c:584 #, fuzzy, c-format @@ -6358,14 +6354,14 @@ msgid "Please run `resize2fs %s %s" msgstr "ketika cuba untuk melaksana '%s'" #: misc/tune2fs.c:493 -#, fuzzy, c-format +#, c-format msgid " -z \"%s\"" -msgstr "@E mempunyai nama @z.\n" +msgstr " -z \"%s\"" #: misc/tune2fs.c:495 #, fuzzy, c-format msgid "' to enable 64-bit mode.\n" -msgstr "Aktifkan gantungan" +msgstr "enable/disable" #: misc/tune2fs.c:497 #, fuzzy, c-format @@ -7032,18 +7028,9 @@ msgid " %s [-r|t] [-n num] [-s socketpath]\n" msgstr "" #: misc/uuidd.c:53 -#, fuzzy, c-format +#, c-format msgid " %s -k\n" -msgstr "" -" --prologue=FAIL masukkan FAIL.pro sebagai prolog PostScript\n" -" --ppd[=KEKUNCI] pilihan PPD automatik atau tetapkan kepada KEKUNCI\n" -" -n, --copies=NOM cetak NOM salinan bagi setiap laman\n" -" -s, --sides=MOD tetapkan MOD dupleks (`1' atau `simplex',\n" -" `2' atau `duplex', `tumble')\n" -" -S, --setpagedevice=K[:V] hantar laman definisi alat kepada keluaran\n" -" --statusdict=K[:[:]V] hantar definisi statusdict kepada keluaran\n" -" -k, --page-prefeed hidupkan laman prasuap\n" -" -K, --no-page-prefeed matikan laman prasuap\n" +msgstr " %s -k\n" #: misc/uuidd.c:155 #, fuzzy @@ -7058,7 +7045,7 @@ msgstr "IDENT: connect() gagal: %s." #: misc/uuidd.c:192 #, fuzzy msgid "write" -msgstr "Tidak dapat menulis diluar daripada %s" +msgstr "Tidak dapat menulis salinan: %s" #: misc/uuidd.c:200 #, fuzzy @@ -7068,7 +7055,7 @@ msgstr "Kiraan Perkataan" #: misc/uuidd.c:206 #, fuzzy msgid "bad response length" -msgstr "Panjang stride tidak sah" +msgstr "\t\t\tKekangan Panjang Laluan: %d\n" #: misc/uuidd.c:271 #, c-format @@ -7245,7 +7232,7 @@ msgstr "" #: resize/main.c:507 #, fuzzy, c-format msgid "Invalid new size: %s\n" -msgstr "%s: fail saiz tidak sah" +msgstr "saiz inode tidak sah - %s" #: resize/main.c:526 msgid "New size too large to be expressed in 32 bits\n" @@ -7344,7 +7331,7 @@ msgstr "" #: resize/main.c:650 #, fuzzy, c-format msgid "while trying to truncate %s" -msgstr "ketika cuba untuk melaksana '%s'" +msgstr "ketika cuba untuk memadam %s" #: resize/online.c:81 msgid "kernel does not support online resize with sparse_super2" @@ -7448,7 +7435,7 @@ msgstr "" #: lib/ext2fs/ext2_err.c:11 #, fuzzy msgid "EXT2FS Library version 1.45.3" -msgstr "Versi pustaka gcrypt terlalu lama." +msgstr "Versi pustaka tasn1 terlalu lama." #: lib/ext2fs/ext2_err.c:12 msgid "Wrong magic number for ext2_filsys structure" @@ -7644,7 +7631,7 @@ msgstr "Nombor tidak sah untuk saiz flex_bg" #: lib/ext2fs/ext2_err.c:54 #, fuzzy msgid "Internal error in ext2fs_expand_dir" -msgstr "Ralat aliran data dalaman." +msgstr "Ralat dalaman GnuTLS." #: lib/ext2fs/ext2_err.c:55 msgid "Not enough space to build proposed filesystem" @@ -7804,7 +7791,7 @@ msgstr "Menulis bitmap blok" #: lib/ext2fs/ext2_err.c:90 #, fuzzy msgid "Ext2 directory already exists" -msgstr "tak dapat menyenaraikan direktori tersedia-tersenarai: %s" +msgstr "Seksyen telah wujud" #: lib/ext2fs/ext2_err.c:91 msgid "Unimplemented ext2 library function" @@ -8041,7 +8028,7 @@ msgstr "Tiada corak carian semasa" #: lib/ext2fs/ext2_err.c:140 #, fuzzy msgid "Ext2fs operation not supported" -msgstr "Arahan tidak disokong." +msgstr "Buat semula tindakan nyahbuat terakhir" #: lib/ext2fs/ext2_err.c:141 msgid "No room to insert extent in node" @@ -8152,7 +8139,7 @@ msgstr "Perkara yang sama bagi hujah pilihan.\n" #: lib/ext2fs/ext2_err.c:166 #, fuzzy msgid "Ext2 file already exists" -msgstr "File wujud, TULISGANTI ?" +msgstr "Seksyen telah wujud" #: lib/ext2fs/ext2_err.c:167 #, fuzzy @@ -8250,42 +8237,28 @@ msgid "The journal superblock is corrupt" msgstr "ketika membaca superblok jurnal" #: lib/ext2fs/ext2_err.c:188 -#, fuzzy msgid "Inode is corrupted" -msgstr "" -"\n" -" Jadual inode di" +msgstr "Inode rosak" #: lib/ext2fs/ext2_err.c:189 msgid "Inode containing extended attribute value is corrupted" msgstr "" #: lib/support/prof_err.c:11 -#, fuzzy msgid "Profile version 0.0" -msgstr "" -"\n" -"\n" -"\n" -"profil mendatar:\n" +msgstr "Versi profil 0.0" #: lib/support/prof_err.c:12 msgid "Bad magic value in profile_node" msgstr "" #: lib/support/prof_err.c:13 -#, fuzzy msgid "Profile section not found" -msgstr "Bahagian Bras" +msgstr "Seksyen profil tidak dijumpai" #: lib/support/prof_err.c:14 -#, fuzzy msgid "Profile relation not found" -msgstr "" -"\n" -"\n" -"\n" -"profil mendatar:\n" +msgstr "Kaitan profil tidak dijumpai" #: lib/support/prof_err.c:15 msgid "Attempt to add a relation to node which is not a section" @@ -8329,20 +8302,19 @@ msgstr "" #: lib/support/prof_err.c:25 msgid "Syntax error in profile section header" -msgstr "" +msgstr "Ralat sintaks dalam pengepala seksyen profil" #: lib/support/prof_err.c:26 -#, fuzzy msgid "Syntax error in profile relation" -msgstr "ralat sintaks, tidak menjangka %s" +msgstr "Ralat sintaks dalam kaitan profil" #: lib/support/prof_err.c:27 msgid "Extra closing brace in profile" -msgstr "" +msgstr "Penutup pendakap tambahan dalam profil" #: lib/support/prof_err.c:28 msgid "Missing open brace in profile" -msgstr "" +msgstr "Hilang pembuka pendakap dalam profil" #: lib/support/prof_err.c:29 msgid "Bad magic value in profile_t" @@ -8357,23 +8329,20 @@ msgid "Iteration through all top level section not supported" msgstr "" #: lib/support/prof_err.c:32 -#, fuzzy msgid "Invalid profile_section object" -msgstr "Tetapan pilihan sistemfail tidak sah: %s\n" +msgstr "Objek profile_section tidak sah" #: lib/support/prof_err.c:33 -#, fuzzy msgid "No more sections" -msgstr "Lagi..." +msgstr "Tiada lagi seksyen" #: lib/support/prof_err.c:34 msgid "Bad nameset passed to query routine" msgstr "" #: lib/support/prof_err.c:35 -#, fuzzy msgid "No profile file open" -msgstr "tidak dapat membuka fail `%s'" +msgstr "Tiada fail profil dibuka" #: lib/support/prof_err.c:36 msgid "Bad magic value in profile_file_t" diff --git a/po/zh_CN.po b/po/zh_CN.po index 3c90b9292..7278f478b 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -3,6 +3,7 @@ # Dark Raven <drdarkraven@gmail.com>, 2009. # zwpwjwtz <zwpwjwtz@126.com>, 2015. # Mingye Wang (Arthur2e5) <arthur200126@gmail.com>, 2016. +# Boyuan Yang <073plan@gmail.com>, 2019. # #. 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, @@ -28,7 +29,14 @@ #. it can expand to either the string "indirect block" (possibly preceded #. by the word "double" or "triple"), or the string "block #" immediately #. followed by an integer indicating a block sequence number. -#. +#. +#. Please note that the %-expansion for most e2fsck's problem.c should not +#. use positional indicators such as %1, since although they look like c-style +#. format strings, they are NOT c-style format strings, and the positional +#. indicators (which BTW are GNU extensions and so won't work on other Unix +#. gettext implementations) won't work with e2fsck's print_e2fsck_message() +#. function found in e2fsck/message.c +#. #. %b <blk> block number #. %B "indirect block" | "block #"<blkcount> string | string+integer #. %c <blk2> block number @@ -68,18 +76,18 @@ #. msgid "" msgstr "" -"Project-Id-Version: e2fsprogs-1.43.1\n" +"Project-Id-Version: e2fsprogs-1.45.3\n" "Report-Msgid-Bugs-To: tytso@alum.mit.edu\n" -"POT-Creation-Date: 2018-08-18 21:03-0400\n" -"PO-Revision-Date: 2016-11-24 23:49-0500\n" -"Last-Translator: Mingye Wang (Arthur2e5) <arthur200126@gmail.com>\n" +"POT-Creation-Date: 2019-07-14 20:56-0400\n" +"PO-Revision-Date: 2019-12-24 10:56-0500\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.2.4\n" "X-Poedit-Bookmarks: -1,591,-1,-1,-1,-1,-1,-1,-1,-1\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -96,12 +104,12 @@ msgstr "进行坏块inode的健全性检查时" msgid "while reading the bad blocks inode" msgstr "读取坏块inode时" -#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1550 -#: e2fsck/unix.c:1664 misc/badblocks.c:1251 misc/badblocks.c:1259 +#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1571 +#: e2fsck/unix.c:1685 misc/badblocks.c:1251 misc/badblocks.c:1259 #: misc/badblocks.c:1273 misc/badblocks.c:1285 misc/dumpe2fs.c:431 -#: misc/dumpe2fs.c:688 misc/dumpe2fs.c:692 misc/e2image.c:1404 -#: misc/e2image.c:1588 misc/e2image.c:1609 misc/mke2fs.c:236 -#: misc/tune2fs.c:2837 misc/tune2fs.c:2931 resize/main.c:414 +#: misc/dumpe2fs.c:688 misc/dumpe2fs.c:692 misc/e2image.c:1430 +#: misc/e2image.c:1627 misc/e2image.c:1648 misc/mke2fs.c:236 +#: misc/tune2fs.c:2796 misc/tune2fs.c:2895 resize/main.c:414 #, c-format msgid "while trying to open %s" msgstr "尝试打开 %s 时" @@ -125,9 +133,8 @@ msgid "Warning: illegal block %u found in bad block inode. Cleared.\n" msgstr "警告:在坏块inode中发现非法的块%u。已清除。\n" #: e2fsck/dirinfo.c:331 -#, fuzzy msgid "while freeing dir_info tdb file" -msgstr "读取坏撤销文件时" +msgstr "释放 dir_info tdb 文件时" #: e2fsck/ehandler.c:55 #, c-format @@ -204,12 +211,12 @@ msgstr "不支持对BLKFLSBUF进行 ioctl 调用! 无法刷新缓存。\n" msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n" msgstr "用法:%s [-F] [-I inode缓冲块] 设备\n" -#: e2fsck/iscan.c:81 e2fsck/unix.c:1075 +#: e2fsck/iscan.c:81 e2fsck/unix.c:1082 #, c-format msgid "while opening %s for flushing" msgstr "打开并刷新 %s 时" -#: e2fsck/iscan.c:86 e2fsck/unix.c:1081 resize/main.c:383 +#: e2fsck/iscan.c:86 e2fsck/unix.c:1088 resize/main.c:383 #, c-format msgid "while trying to flush %s" msgstr "尝试刷新 %s 时" @@ -219,11 +226,11 @@ msgstr "尝试刷新 %s 时" msgid "while trying to open '%s'" msgstr "尝试打开 “%s” 时" -#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1297 +#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1323 msgid "while opening inode scan" msgstr "进行inode扫描时" -#: e2fsck/iscan.c:127 misc/e2image.c:1316 +#: e2fsck/iscan.c:127 misc/e2image.c:1342 msgid "while getting next inode" msgstr "获取下一个inode时" @@ -246,7 +253,7 @@ msgstr "%s: 没有发现日志超级块\n" msgid "%s: journal too short\n" msgstr "%s: 日志过短\n" -#: e2fsck/journal.c:972 misc/fuse2fs.c:3786 +#: e2fsck/journal.c:972 misc/fuse2fs.c:3792 #, c-format msgid "%s: recovering journal\n" msgstr "%s:正在修复日志\n" @@ -480,21 +487,19 @@ msgstr "块 #" #: e2fsck/message.c:482 msgid "user" -msgstr "" +msgstr "用户" #: e2fsck/message.c:485 -#, fuzzy msgid "group" -msgstr "g组" +msgstr "组" #: e2fsck/message.c:488 msgid "project" msgstr "" #: e2fsck/message.c:491 -#, fuzzy msgid "unknown quota type" -msgstr "未知操作系统 - %s" +msgstr "未知配额类型" #: e2fsck/pass1b.c:222 msgid "multiply claimed inode map" @@ -519,86 +524,86 @@ msgstr "内部错误:无法查找 %llu 的EA块记录" msgid "internal error: couldn't lookup EA inode record for %u" msgstr "内部错误:无法查找 %u 的EA inode块记录" -#: e2fsck/pass1.c:356 +#: e2fsck/pass1.c:357 #, c-format msgid "while hashing entry with e_value_inum = %u" msgstr "" -#: e2fsck/pass1.c:774 e2fsck/pass2.c:1005 +#: e2fsck/pass1.c:775 e2fsck/pass2.c:1007 msgid "reading directory block" msgstr "正在读取目录块" -#: e2fsck/pass1.c:1223 +#: e2fsck/pass1.c:1224 msgid "in-use inode map" msgstr "使用中的inode映射" -#: e2fsck/pass1.c:1234 +#: e2fsck/pass1.c:1235 msgid "directory inode map" msgstr "目录inode映射" -#: e2fsck/pass1.c:1244 +#: e2fsck/pass1.c:1245 msgid "regular file inode map" msgstr "普通文件inode映射" -#: e2fsck/pass1.c:1253 misc/e2image.c:1272 +#: e2fsck/pass1.c:1254 misc/e2image.c:1282 msgid "in-use block map" msgstr "使用中的块映射" -#: e2fsck/pass1.c:1262 +#: e2fsck/pass1.c:1263 msgid "metadata block map" msgstr "元数据块映射" -#: e2fsck/pass1.c:1324 +#: e2fsck/pass1.c:1325 msgid "opening inode scan" msgstr "开始 inode 扫描" -#: e2fsck/pass1.c:1362 +#: e2fsck/pass1.c:1363 msgid "getting next inode from scan" msgstr "从扫描进度中获取下一个 inode" -#: e2fsck/pass1.c:2066 +#: e2fsck/pass1.c:2067 msgid "Pass 1" msgstr "第 1 步" -#: e2fsck/pass1.c:2127 +#: e2fsck/pass1.c:2128 #, c-format msgid "reading indirect blocks of inode %u" msgstr "读取inode为 %u 的链接块时" -#: e2fsck/pass1.c:2178 +#: e2fsck/pass1.c:2179 msgid "bad inode map" msgstr "坏块映射" -#: e2fsck/pass1.c:2218 +#: e2fsck/pass1.c:2219 msgid "inode in bad block map" msgstr "更新坏块映射时" -#: e2fsck/pass1.c:2238 +#: e2fsck/pass1.c:2239 msgid "imagic inode map" msgstr "inode的imagic映射" -#: e2fsck/pass1.c:2269 +#: e2fsck/pass1.c:2270 msgid "multiply claimed block map" msgstr "重叠块映射" -#: e2fsck/pass1.c:2394 +#: e2fsck/pass1.c:2395 msgid "ext attr block map" msgstr "扩展属性块映射" -#: e2fsck/pass1.c:3637 +#: e2fsck/pass1.c:3640 #, c-format msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n" msgstr "%6lu(%c):应为 %6lu 但实际为 %6lu (块 %lld)\n" -#: e2fsck/pass1.c:4054 +#: e2fsck/pass1.c:4060 msgid "block bitmap" msgstr "块位图" -#: e2fsck/pass1.c:4060 +#: e2fsck/pass1.c:4066 msgid "inode bitmap" msgstr "inode 位图" -#: e2fsck/pass1.c:4066 +#: e2fsck/pass1.c:4072 msgid "inode table" msgstr "inode表" @@ -606,7 +611,7 @@ msgstr "inode表" msgid "Pass 2" msgstr "第 2 步" -#: e2fsck/pass2.c:1077 e2fsck/pass2.c:1244 +#: e2fsck/pass2.c:1079 e2fsck/pass2.c:1246 msgid "Can not continue." msgstr "无法继续。" @@ -642,179 +647,187 @@ msgstr "check_inode_bitmap_checksum:内存分配出错" msgid "check_block_bitmap_checksum: Memory allocation error" msgstr "check_block_bitmap_checksum:内存分配出错" -#: e2fsck/problem.c:51 +#: e2fsck/problem.c:52 msgid "(no prompt)" msgstr "(没有提示)" -#: e2fsck/problem.c:52 +#: e2fsck/problem.c:53 msgid "Fix" msgstr "处理" -#: e2fsck/problem.c:53 +#: e2fsck/problem.c:54 msgid "Clear" msgstr "清除" -#: e2fsck/problem.c:54 +#: e2fsck/problem.c:55 msgid "Relocate" msgstr "重定位" -#: e2fsck/problem.c:55 +#: e2fsck/problem.c:56 msgid "Allocate" msgstr "分配" -#: e2fsck/problem.c:56 +#: e2fsck/problem.c:57 msgid "Expand" msgstr "扩充" -#: e2fsck/problem.c:57 +#: e2fsck/problem.c:58 msgid "Connect to /lost+found" msgstr "连接到 /lost+found" -#: e2fsck/problem.c:58 +#: e2fsck/problem.c:59 msgid "Create" msgstr "创建" -#: e2fsck/problem.c:59 +#: e2fsck/problem.c:60 msgid "Salvage" msgstr "修复" -#: e2fsck/problem.c:60 +#: e2fsck/problem.c:61 msgid "Truncate" msgstr "截断" -#: e2fsck/problem.c:61 +#: e2fsck/problem.c:62 msgid "Clear inode" msgstr "清除inode" -#: e2fsck/problem.c:62 +#: e2fsck/problem.c:63 msgid "Abort" msgstr "中断" -#: e2fsck/problem.c:63 +#: e2fsck/problem.c:64 msgid "Split" msgstr "分割" -#: e2fsck/problem.c:64 +#: e2fsck/problem.c:65 msgid "Continue" msgstr "继续" -#: e2fsck/problem.c:65 +#: e2fsck/problem.c:66 msgid "Clone multiply-claimed blocks" msgstr "克隆重叠块" -#: e2fsck/problem.c:66 +#: e2fsck/problem.c:67 msgid "Delete file" msgstr "删除文件" -#: e2fsck/problem.c:67 +#: e2fsck/problem.c:68 msgid "Suppress messages" msgstr "不显示消息" -#: e2fsck/problem.c:68 +#: e2fsck/problem.c:69 msgid "Unlink" msgstr "解除链接" -#: e2fsck/problem.c:69 +#: e2fsck/problem.c:70 msgid "Clear HTree index" msgstr "清除HTree索引" -#: e2fsck/problem.c:70 +#: e2fsck/problem.c:71 msgid "Recreate" msgstr "重建" -#: e2fsck/problem.c:79 +#: e2fsck/problem.c:72 +msgid "Optimize" +msgstr "优化" + +#: e2fsck/problem.c:81 msgid "(NONE)" msgstr "(空)" -#: e2fsck/problem.c:80 +#: e2fsck/problem.c:82 msgid "FIXED" msgstr "已处理" -#: e2fsck/problem.c:81 +#: e2fsck/problem.c:83 msgid "CLEARED" msgstr "已清除" -#: e2fsck/problem.c:82 +#: e2fsck/problem.c:84 msgid "RELOCATED" msgstr "已重定位" -#: e2fsck/problem.c:83 +#: e2fsck/problem.c:85 msgid "ALLOCATED" msgstr "已分配" -#: e2fsck/problem.c:84 +#: e2fsck/problem.c:86 msgid "EXPANDED" msgstr "已扩充" -#: e2fsck/problem.c:85 +#: e2fsck/problem.c:87 msgid "RECONNECTED" msgstr "已重新连接" -#: e2fsck/problem.c:86 +#: e2fsck/problem.c:88 msgid "CREATED" msgstr "已创建" -#: e2fsck/problem.c:87 +#: e2fsck/problem.c:89 msgid "SALVAGED" msgstr "已修复" -#: e2fsck/problem.c:88 +#: e2fsck/problem.c:90 msgid "TRUNCATED" msgstr "截断" -#: e2fsck/problem.c:89 +#: e2fsck/problem.c:91 msgid "INODE CLEARED" msgstr "INODE 已清除" -#: e2fsck/problem.c:90 +#: e2fsck/problem.c:92 msgid "ABORTED" msgstr "已中断" -#: e2fsck/problem.c:91 +#: e2fsck/problem.c:93 msgid "SPLIT" msgstr "分割" -#: e2fsck/problem.c:92 +#: e2fsck/problem.c:94 msgid "CONTINUING" msgstr "继续" -#: e2fsck/problem.c:93 +#: e2fsck/problem.c:95 msgid "MULTIPLY-CLAIMED BLOCKS CLONED" msgstr "重叠块已克隆" -#: e2fsck/problem.c:94 +#: e2fsck/problem.c:96 msgid "FILE DELETED" msgstr "文件已删除" -#: e2fsck/problem.c:95 +#: e2fsck/problem.c:97 msgid "SUPPRESSED" msgstr "禁止" -#: e2fsck/problem.c:96 +#: e2fsck/problem.c:98 msgid "UNLINKED" msgstr "已解除链接" -#: e2fsck/problem.c:97 +#: e2fsck/problem.c:99 msgid "HTREE INDEX CLEARED" msgstr "HTree索引已清除" -#: e2fsck/problem.c:98 +#: e2fsck/problem.c:100 msgid "WILL RECREATE" msgstr "将会重建" +#: e2fsck/problem.c:101 +msgid "WILL OPTIMIZE" +msgstr "将会优化" + #. @-expanded: block bitmap for group %g is not in group. (block %b)\n -#: e2fsck/problem.c:112 +#: e2fsck/problem.c:115 msgid "@b @B for @g %g is not in @g. (@b %b)\n" msgstr "@g %g 的@b@B并不在 @g 中。(@b %b)\n" #. @-expanded: inode bitmap for group %g is not in group. (block %b)\n -#: e2fsck/problem.c:116 +#: e2fsck/problem.c:119 msgid "@i @B for @g %g is not in @g. (@b %b)\n" msgstr "@g %g 的@i@B 并不在 @g 中。(@b %b)\n" #. @-expanded: inode table for group %g is not in group. (block %b)\n #. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n -#: e2fsck/problem.c:121 +#: e2fsck/problem.c:124 msgid "" "@i table for @g %g is not in @g. (@b %b)\n" "WARNING: SEVERE DATA LOSS POSSIBLE.\n" @@ -831,7 +844,7 @@ msgstr "" #. @-expanded: or\n #. @-expanded: e2fsck -b 32768 <device>\n #. @-expanded: \n -#: e2fsck/problem.c:127 +#: e2fsck/problem.c:130 msgid "" "\n" "The @S could not be read or does not describe a valid ext2/ext3/ext4\n" @@ -855,7 +868,7 @@ msgstr "" #. @-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 -#: e2fsck/problem.c:138 +#: e2fsck/problem.c:141 msgid "" "The @f size (according to the @S) is %b @bs\n" "The physical size of the @v is %c @bs\n" @@ -868,7 +881,7 @@ msgstr "" #. @-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 -#: e2fsck/problem.c:145 +#: e2fsck/problem.c:148 msgid "" "@S @b_size = %b, fragsize = %c.\n" "This version of e2fsck does not support fragment sizes different\n" @@ -879,18 +892,18 @@ msgstr "" "@b大小不同。\n" #. @-expanded: superblock blocks_per_group = %b, should have been %c\n -#: e2fsck/problem.c:152 +#: e2fsck/problem.c:155 msgid "@S @bs_per_group = %b, should have been %c\n" msgstr "每组的@S@b数 = %b,应当为 %c。\n" #. @-expanded: superblock first_data_block = %b, should have been %c\n -#: e2fsck/problem.c:157 +#: e2fsck/problem.c:160 msgid "@S first_data_@b = %b, should have been %c\n" msgstr "@S的第一个数据块 = %b,应当为 %c\n" #. @-expanded: filesystem did not have a UUID; generating one.\n #. @-expanded: \n -#: e2fsck/problem.c:162 +#: e2fsck/problem.c:165 msgid "" "@f did not have a UUID; generating one.\n" "\n" @@ -898,8 +911,8 @@ msgstr "" "@f没有UUID;正在创建新的UUID。\n" "\n" -#: e2fsck/problem.c:167 -#, c-format +#: e2fsck/problem.c:171 +#, no-c-format msgid "" "Note: if several inode or block bitmap blocks or part\n" "of the inode table require relocation, you may wish to try\n" @@ -915,48 +928,48 @@ msgstr "" "\n" #. @-expanded: Corruption found in superblock. (%s = %N).\n -#: e2fsck/problem.c:176 +#: e2fsck/problem.c:180 msgid "Corruption found in @S. (%s = %N).\n" msgstr "在@S中发现错误。(%s = %N)。\n" #. @-expanded: Error determining size of the physical device: %m\n -#: e2fsck/problem.c:181 -#, c-format +#: e2fsck/problem.c:186 +#, no-c-format msgid "Error determining size of the physical @v: %m\n" msgstr "决定物理@v的大小出错 %m\n" #. @-expanded: inode count in superblock is %i, should be %j.\n -#: e2fsck/problem.c:186 +#: e2fsck/problem.c:191 msgid "@i count in @S is %i, @s %j.\n" msgstr "@S中的@i个数为 %i,@s %j。\n" -#: e2fsck/problem.c:190 +#: e2fsck/problem.c:195 msgid "The Hurd does not support the filetype feature.\n" msgstr "Hurd内核不支持文件类型\n" #. @-expanded: superblock has an invalid journal (inode %i).\n -#: e2fsck/problem.c:195 -#, c-format +#: e2fsck/problem.c:201 +#, no-c-format msgid "@S has an @n @j (@i %i).\n" msgstr "@S含有一个@n@j(@i %i)。\n" #. @-expanded: External journal has multiple filesystem users (unsupported).\n -#: e2fsck/problem.c:200 +#: e2fsck/problem.c:206 msgid "External @j has multiple @f users (unsupported).\n" msgstr "外部@j含有多个@f用户(不支持此特性)。\n" #. @-expanded: Can't find external journal\n -#: e2fsck/problem.c:205 +#: e2fsck/problem.c:211 msgid "Can't find external @j\n" msgstr "无法找到外部@j\n" #. @-expanded: External journal has bad superblock\n -#: e2fsck/problem.c:210 +#: e2fsck/problem.c:216 msgid "External @j has bad @S\n" msgstr "外部@j有坏@S\n" #. @-expanded: External journal does not support this filesystem\n -#: e2fsck/problem.c:215 +#: e2fsck/problem.c:221 msgid "External @j does not support this @f\n" msgstr "外部@j不支持此@f\n" @@ -964,11 +977,10 @@ msgstr "外部@j不支持此@f\n" #. @-expanded: It is likely that your copy of e2fsck is old and/or doesn't support this journal #. @-expanded: format.\n #. @-expanded: It is also possible the journal superblock is corrupt.\n -#: e2fsck/problem.c:220 +#: e2fsck/problem.c:226 msgid "" "@f @j @S is unknown type %N (unsupported).\n" -"It is likely that your copy of e2fsck is old and/or doesn't support this @j " -"format.\n" +"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n" "It is also possible the @j @S is corrupt.\n" msgstr "" "@f@j@S为未知类型 %N(不支持此特性)。\n" @@ -977,81 +989,81 @@ msgstr "" "\n" #. @-expanded: journal superblock is corrupt.\n -#: e2fsck/problem.c:228 +#: e2fsck/problem.c:235 msgid "@j @S is corrupt.\n" msgstr "@j@S被损坏。\n" #. @-expanded: superblock has_journal flag is clear, but a journal is present.\n -#: e2fsck/problem.c:233 +#: e2fsck/problem.c:240 msgid "@S has_@j flag is clear, but a @j is present.\n" msgstr "@S不具有has_journal标志,但发现了@j。\n" #. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n -#: e2fsck/problem.c:238 +#: e2fsck/problem.c:245 msgid "@S needs_recovery flag is set, but no @j is present.\n" msgstr "@S被设置了needs_recovery标志,但找不到相应的@j。\n" #. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n -#: e2fsck/problem.c:243 +#: e2fsck/problem.c:250 msgid "@S needs_recovery flag is clear, but @j has data.\n" msgstr "@S不具有的恢复标志,然而在@j中找到了恢复数据。\n" #. @-expanded: Clear journal -#: e2fsck/problem.c:248 +#: e2fsck/problem.c:255 msgid "Clear @j" msgstr "清除@j" #. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem. -#: e2fsck/problem.c:253 e2fsck/problem.c:764 +#: e2fsck/problem.c:260 e2fsck/problem.c:796 msgid "@f has feature flag(s) set, but is a revision 0 @f. " msgstr "@f被设置了特性标志,但特性版本号为0。 " #. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n -#: e2fsck/problem.c:258 +#: e2fsck/problem.c:265 msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n" msgstr "@s@o@i %i(uid=%lu,gid=%lg,mode=%lm,size=%ls)\n" #. @-expanded: illegal %B (%b) found in orphaned inode %i.\n -#: e2fsck/problem.c:263 +#: e2fsck/problem.c:270 msgid "@I %B (%b) found in @o @i %i.\n" msgstr "@o@i %i 中发现 @I %B(%b)。\n" #. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n -#: e2fsck/problem.c:268 +#: e2fsck/problem.c:275 msgid "Already cleared %B (%b) found in @o @i %i.\n" msgstr "@o@i %i 中发现已清除的 %B(%b)。\n" #. @-expanded: illegal orphaned inode %i in superblock.\n -#: e2fsck/problem.c:273 -#, c-format +#: e2fsck/problem.c:281 +#, no-c-format msgid "@I @o @i %i in @S.\n" msgstr "@S中有@I@o@i %i。\n" #. @-expanded: illegal inode %i in orphaned inode list.\n -#: e2fsck/problem.c:278 -#, c-format +#: e2fsck/problem.c:287 +#, no-c-format msgid "@I @i %i in @o @i list.\n" msgstr "@o@i中发现@I@i %i。\n" #. @-expanded: journal superblock has an unknown read-only feature flag set.\n -#: e2fsck/problem.c:283 +#: e2fsck/problem.c:292 msgid "@j @S has an unknown read-only feature flag set.\n" msgstr "@j@S被设置了未知的只读属性标签。\n" #. @-expanded: journal superblock has an unknown incompatible feature flag set.\n -#: e2fsck/problem.c:288 +#: e2fsck/problem.c:297 msgid "@j @S has an unknown incompatible feature flag set.\n" msgstr "@j@S被设置了未知的不兼容属性标签。\n" #. @-expanded: journal version not supported by this e2fsck.\n -#: e2fsck/problem.c:293 +#: e2fsck/problem.c:302 msgid "@j version not supported by this e2fsck.\n" msgstr "e2fsck不支持此@j版本。\n" #. @-expanded: Moving journal from /%s to hidden inode.\n #. @-expanded: \n -#: e2fsck/problem.c:298 -#, c-format +#: e2fsck/problem.c:308 +#, no-c-format msgid "" "Moving @j from /%s to hidden @i.\n" "\n" @@ -1061,8 +1073,8 @@ msgstr "" #. @-expanded: Error moving journal: %m\n #. @-expanded: \n -#: e2fsck/problem.c:303 -#, c-format +#: e2fsck/problem.c:314 +#, no-c-format msgid "" "Error moving @j: %m\n" "\n" @@ -1073,7 +1085,7 @@ msgstr "" #. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n #. @-expanded: Clearing fields beyond the V1 journal superblock...\n #. @-expanded: \n -#: e2fsck/problem.c:308 +#: e2fsck/problem.c:319 msgid "" "Found @n V2 @j @S fields (from V1 @j).\n" "Clearing fields beyond the V1 @j @S...\n" @@ -1084,18 +1096,18 @@ msgstr "" "\n" #. @-expanded: Run journal anyway -#: e2fsck/problem.c:314 +#: e2fsck/problem.c:325 msgid "Run @j anyway" msgstr "强制@j" #. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n -#: e2fsck/problem.c:319 +#: e2fsck/problem.c:330 msgid "Recovery flag not set in backup @S, so running @j anyway.\n" msgstr "备份@S中未设置恢复标志,继续处理日志。\n" #. @-expanded: Backing up journal inode block information.\n #. @-expanded: \n -#: e2fsck/problem.c:324 +#: e2fsck/problem.c:335 msgid "" "Backing up @j @i @b information.\n" "\n" @@ -1105,7 +1117,7 @@ msgstr "" #. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n #. @-expanded: is %N; should be zero. -#: e2fsck/problem.c:330 +#: e2fsck/problem.c:341 msgid "" "@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n" "is %N; @s zero. " @@ -1114,18 +1126,18 @@ msgstr "" "(但实际为%N)。 " #. @-expanded: Resize_inode not enabled, but the resize inode is non-zero. -#: e2fsck/problem.c:336 +#: e2fsck/problem.c:347 msgid "Resize_@i not enabled, but the resize @i is non-zero. " msgstr "不支持更改@i大小,但所给的变更值非零。 " #. @-expanded: Resize inode not valid. -#: e2fsck/problem.c:341 +#: e2fsck/problem.c:352 msgid "Resize @i not valid. " msgstr "改变@i大小的值无效。" #. @-expanded: superblock last mount time (%t,\n #. @-expanded: \tnow = %T) is in the future.\n -#: e2fsck/problem.c:346 +#: e2fsck/problem.c:357 msgid "" "@S last mount time (%t,\n" "\tnow = %T) is in the future.\n" @@ -1135,7 +1147,7 @@ msgstr "" #. @-expanded: superblock last write time (%t,\n #. @-expanded: \tnow = %T) is in the future.\n -#: e2fsck/problem.c:351 +#: e2fsck/problem.c:362 msgid "" "@S last write time (%t,\n" "\tnow = %T) is in the future.\n" @@ -1144,14 +1156,14 @@ msgstr "" "\t当前:%T)在未来。 \n" #. @-expanded: superblock hint for external superblock should be %X. -#: e2fsck/problem.c:356 -#, c-format +#: e2fsck/problem.c:368 +#, no-c-format msgid "@S hint for external superblock @s %X. " msgstr "外部超级块的@S标记@s %X。 " #. @-expanded: Adding dirhash hint to filesystem.\n #. @-expanded: \n -#: e2fsck/problem.c:361 +#: e2fsck/problem.c:373 msgid "" "Adding dirhash hint to @f.\n" "\n" @@ -1160,43 +1172,42 @@ msgstr "" "\n" #. @-expanded: group descriptor %g checksum is %04x, should be %04y. -#: e2fsck/problem.c:366 +#: e2fsck/problem.c:378 msgid "@g descriptor %g checksum is %04x, should be %04y. " msgstr "@g描述符 %g 的校验值为%04x,应当为 %04y。 " #. @-expanded: group descriptor %g marked uninitialized without feature set.\n -#: e2fsck/problem.c:371 -#, c-format +#: e2fsck/problem.c:384 +#, no-c-format msgid "@g descriptor %g marked uninitialized without feature set.\n" msgstr "@g描述符 %g被标记为未初始化,并且没有设定特性。\n" #. @-expanded: group descriptor %g has invalid unused inodes count %b. -#: e2fsck/problem.c:376 +#: e2fsck/problem.c:389 msgid "@g descriptor %g has invalid unused inodes count %b. " msgstr "@g描述符 %g 中的未使用inode数 %b 为无效值。 " #. @-expanded: Last group block bitmap uninitialized. -#: e2fsck/problem.c:381 +#: e2fsck/problem.c:394 msgid "Last @g @b @B uninitialized. " msgstr "最后一个@g的@b@B未初始化。 " -#: e2fsck/problem.c:386 -#, c-format +#: e2fsck/problem.c:400 +#, no-c-format msgid "Journal transaction %i was corrupt, replay was aborted.\n" msgstr "日志事务 %i 损坏,撤销过程已终止。\n" -#: e2fsck/problem.c:391 +#: e2fsck/problem.c:405 msgid "The test_fs flag is set (and ext4 is available). " msgstr "设置了 test_fs 标志(并且ext4可用)。 " #. @-expanded: superblock last mount time is in the future.\n #. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly #. @-expanded: set)\n -#: e2fsck/problem.c:396 +#: e2fsck/problem.c:410 msgid "" "@S last mount time is in the future.\n" -"\t(by less than a day, probably due to the hardware clock being incorrectly " -"set)\n" +"\t(by less than a day, probably due to the hardware clock being incorrectly set)\n" msgstr "" "@S上一次挂载时间在未来。\n" "\t(相差不到一天,可能是硬件时钟设定错误所致)\n" @@ -1204,240 +1215,235 @@ msgstr "" #. @-expanded: superblock last write time is in the future.\n #. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly #. @-expanded: set)\n -#: e2fsck/problem.c:402 +#: e2fsck/problem.c:416 msgid "" "@S last write time is in the future.\n" -"\t(by less than a day, probably due to the hardware clock being incorrectly " -"set)\n" +"\t(by less than a day, probably due to the hardware clock being incorrectly set)\n" msgstr "" "@S上一次写入时间在未来。\n" "\t(相差不到一天,可能是硬件时钟设定错误所致)\n" #. @-expanded: One or more block group descriptor checksums are invalid. -#: e2fsck/problem.c:408 +#: e2fsck/problem.c:422 msgid "One or more @b @g descriptor checksums are invalid. " msgstr "一个或多个@b@g描述符的校验值无效。 " #. @-expanded: Setting free inodes count to %j (was %i)\n -#: e2fsck/problem.c:413 +#: e2fsck/problem.c:427 msgid "Setting free @is count to %j (was %i)\n" msgstr "设置未使用的@i数为 %j(曾为%i)\n" #. @-expanded: Setting free blocks count to %c (was %b)\n -#: e2fsck/problem.c:418 +#: e2fsck/problem.c:432 msgid "Setting free @bs count to %c (was %b)\n" msgstr "设置未使用的@b数为 %c(曾为%b)\n" #. @-expanded: Hiding %U quota inode %i (%Q).\n -#: e2fsck/problem.c:423 +#: e2fsck/problem.c:437 #, fuzzy +#| msgid "Making @q @i %i (%Q) hidden.\n" msgid "Hiding %U @q @i %i (%Q).\n" msgstr "" "将@q@i %i(%Q)标记为隐藏的。\n" "\n" #. @-expanded: superblock has invalid MMP block. -#: e2fsck/problem.c:428 +#: e2fsck/problem.c:442 msgid "@S has invalid MMP block. " msgstr "@S含有无效的MMP块。 " #. @-expanded: superblock has invalid MMP magic. -#: e2fsck/problem.c:433 +#: e2fsck/problem.c:447 msgid "@S has invalid MMP magic. " msgstr "@S含有无效的MMP幻数。 " -#: e2fsck/problem.c:438 -#, c-format +#: e2fsck/problem.c:453 +#, no-c-format msgid "ext2fs_open2: %m\n" msgstr "ext2fs_open2: %m\n" -#: e2fsck/problem.c:443 -#, c-format +#: e2fsck/problem.c:459 +#, no-c-format msgid "ext2fs_check_desc: %m\n" msgstr "ext2fs_check_desc: %m\n" #. @-expanded: superblock metadata_csum supersedes uninit_bg; both feature bits cannot be set #. @-expanded: simultaneously. -#: e2fsck/problem.c:449 -msgid "" -"@S metadata_csum supersedes uninit_bg; both feature bits cannot be set " -"simultaneously." -msgstr "" -"@S 的 metadata_csum 特性将取代 uninit_bg 特性,因此不能同时将二者开启。" +#: e2fsck/problem.c:465 +msgid "@S metadata_csum supersedes uninit_bg; both feature bits cannot be set simultaneously." +msgstr "@S 的 metadata_csum 特性将取代 uninit_bg 特性,因此不能同时将二者开启。" #. @-expanded: superblock MMP block checksum does not match. -#: e2fsck/problem.c:455 -#, fuzzy +#: e2fsck/problem.c:471 msgid "@S MMP @b checksum does not match. " -msgstr "@S MMP块校验值与MMP块自身不符。" +msgstr "@S MMP @b 校验值不符。" #. @-expanded: superblock 64bit filesystem needs extents to access the whole disk. -#: e2fsck/problem.c:460 +#: e2fsck/problem.c:476 #, fuzzy +#| msgid "@S 64bit filesystems needs extents to access the whole disk. " msgid "@S 64bit @f needs extents to access the whole disk. " msgstr "64位文件系统的@S需要extent来访问整个磁盘。 " -#: e2fsck/problem.c:465 +#: e2fsck/problem.c:481 msgid "First_meta_bg is too big. (%N, max value %g). " msgstr "第一个meta_bg太大。(%N,最大值 %g)" #. @-expanded: External journal superblock checksum does not match superblock. -#: e2fsck/problem.c:470 +#: e2fsck/problem.c:486 msgid "External @j @S checksum does not match @S. " msgstr "外部@j@S校验值与@S自身不符" #. @-expanded: superblock metadata_csum_seed is not necessary without metadata_csum. -#: e2fsck/problem.c:475 +#: e2fsck/problem.c:491 msgid "@S metadata_csum_seed is not necessary without metadata_csum." -msgstr "" -"只有同时开启了@S的 metadata_csum 特性,metadata_csum_seed 特性才有意义。" +msgstr "只有同时开启了@S的 metadata_csum 特性,metadata_csum_seed 特性才有意义。" -#: e2fsck/problem.c:480 -#, c-format +#: e2fsck/problem.c:497 +#, no-c-format msgid "Error initializing quota context in support library: %m\n" msgstr "初始化支持库中的引用上下文时出错:%m\n" #. @-expanded: Bad required extra isize in superblock (%N). -#: e2fsck/problem.c:485 +#: e2fsck/problem.c:502 msgid "Bad required extra isize in @S (%N). " msgstr "" #. @-expanded: Bad desired extra isize in superblock (%N). -#: e2fsck/problem.c:490 +#: e2fsck/problem.c:507 msgid "Bad desired extra isize in @S (%N). " msgstr "" #. @-expanded: Invalid %U quota inode %i. -#: e2fsck/problem.c:495 -#, fuzzy +#: e2fsck/problem.c:512 msgid "Invalid %U @q @i %i. " -msgstr "@u@z@i %i。 " +msgstr "无效的 %U @q @i %i。 " #. @-expanded: superblock would have too many inodes (%N).\n -#: e2fsck/problem.c:500 +#: e2fsck/problem.c:517 msgid "@S would have too many inodes (%N).\n" -msgstr "" +msgstr "@S 将含有过多 inode(%N)。\n" #. @-expanded: Resize_inode and meta_bg features are enabled. Those features are\n #. @-expanded: not compatible. Resize inode should be disabled. -#: e2fsck/problem.c:505 +#: e2fsck/problem.c:522 msgid "" "Resize_@i and meta_bg features are enabled. Those features are\n" "not compatible. Resize @i should be disabled. " msgstr "" #. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n -#: e2fsck/problem.c:513 +#: e2fsck/problem.c:530 msgid "Pass 1: Checking @is, @bs, and sizes\n" msgstr "第 1 步:检查@i、@b和大小\n" #. @-expanded: root inode is not a directory. -#: e2fsck/problem.c:517 +#: e2fsck/problem.c:534 msgid "@r is not a @d. " msgstr "@r不是一个@d。 " #. @-expanded: root inode has dtime set (probably due to old mke2fs). -#: e2fsck/problem.c:522 +#: e2fsck/problem.c:539 msgid "@r has dtime set (probably due to old mke2fs). " msgstr "@r被设置了删除时间(可能由老版本的mke2fs导致)。" #. @-expanded: Reserved inode %i (%Q) has invalid mode. -#: e2fsck/problem.c:527 +#: e2fsck/problem.c:544 msgid "Reserved @i %i (%Q) has @n mode. " msgstr "保留的@i %i(%Q)的模式无效。 " #. @-expanded: deleted inode %i has zero dtime. -#: e2fsck/problem.c:532 -#, c-format +#: e2fsck/problem.c:550 +#, no-c-format msgid "@D @i %i has zero dtime. " msgstr "@D@i %i 的删除时间为零。 " #. @-expanded: inode %i is in use, but has dtime set. -#: e2fsck/problem.c:537 -#, c-format +#: e2fsck/problem.c:556 +#, no-c-format msgid "@i %i is in use, but has dtime set. " msgstr "使用中的@i %i 被设置了删除时间。 " #. @-expanded: inode %i is a zero-length directory. -#: e2fsck/problem.c:542 -#, c-format +#: e2fsck/problem.c:562 +#, no-c-format msgid "@i %i is a @z @d. " msgstr "@i %i 为@z@d。 " #. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n -#: e2fsck/problem.c:547 +#: e2fsck/problem.c:567 msgid "@g %g's @b @B at %b @C.\n" msgstr "位于 %b 的@g %g的@b@B@C。\n" #. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n -#: e2fsck/problem.c:552 +#: e2fsck/problem.c:572 msgid "@g %g's @i @B at %b @C.\n" msgstr "位于 %b 的@g %g的@i@B@C。\n" #. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n -#: e2fsck/problem.c:557 +#: e2fsck/problem.c:577 msgid "@g %g's @i table at %b @C.\n" msgstr "位于 %b 的@g %g的@i表@C。\n" #. @-expanded: group %g's block bitmap (%b) is bad. -#: e2fsck/problem.c:562 +#: e2fsck/problem.c:582 msgid "@g %g's @b @B (%b) is bad. " msgstr "@g %g 的@b@B无效。 " #. @-expanded: group %g's inode bitmap (%b) is bad. -#: e2fsck/problem.c:567 +#: e2fsck/problem.c:587 msgid "@g %g's @i @B (%b) is bad. " msgstr "@g %g 的@i@B无效。 " #. @-expanded: inode %i, i_size is %Is, should be %N. -#: e2fsck/problem.c:572 +#: e2fsck/problem.c:592 msgid "@i %i, i_size is %Is, @s %N. " msgstr "@i %i的大小为 %ls,@s %N。 " #. @-expanded: inode %i, i_blocks is %Ib, should be %N. -#: e2fsck/problem.c:577 +#: e2fsck/problem.c:597 msgid "@i %i, i_@bs is %Ib, @s %N. " msgstr "@i %i的i_blocks为 %ls,@s %N。 " #. @-expanded: illegal %B (%b) in inode %i. -#: e2fsck/problem.c:582 +#: e2fsck/problem.c:602 msgid "@I %B (%b) in @i %i. " msgstr "@I %B(%b)于@i %i。 " #. @-expanded: %B (%b) overlaps filesystem metadata in inode %i. -#: e2fsck/problem.c:587 +#: e2fsck/problem.c:607 msgid "%B (%b) overlaps @f metadata in @i %i. " msgstr "%B(%b)与@i %i 记录元数据的位置重叠。 " #. @-expanded: inode %i has illegal block(s). -#: e2fsck/problem.c:592 -#, c-format +#: e2fsck/problem.c:613 +#, no-c-format msgid "@i %i has illegal @b(s). " msgstr "@i %i 中包含非法@b。 " #. @-expanded: Too many illegal blocks in inode %i.\n -#: e2fsck/problem.c:597 -#, c-format +#: e2fsck/problem.c:619 +#, no-c-format msgid "Too many illegal @bs in @i %i.\n" msgstr "@i %i 中包含了过多的非法@b。\n" #. @-expanded: illegal %B (%b) in bad block inode. -#: e2fsck/problem.c:602 +#: e2fsck/problem.c:624 msgid "@I %B (%b) in bad @b @i. " msgstr "@I %B(%b)于坏@b@i。 " #. @-expanded: Bad block inode has illegal block(s). -#: e2fsck/problem.c:607 +#: e2fsck/problem.c:629 msgid "Bad @b @i has illegal @b(s). " msgstr "坏@b@i含有无效的@b。 " #. @-expanded: Duplicate or bad block in use!\n -#: e2fsck/problem.c:612 +#: e2fsck/problem.c:634 msgid "Duplicate or bad @b in use!\n" msgstr "使用了重复@b或坏@b!\n" #. @-expanded: Bad block %b used as bad block inode indirect block. -#: e2fsck/problem.c:617 +#: e2fsck/problem.c:639 msgid "Bad @b %b used as bad @b @i indirect @b. " msgstr "坏@b %b 被用作坏@b@i的链接@b。 " @@ -1445,7 +1451,7 @@ msgstr "坏@b %b 被用作坏@b@i的链接@b。 " #. @-expanded: The bad block inode has probably been corrupted. You probably\n #. @-expanded: should stop now and run e2fsck -c to scan for bad blocks\n #. @-expanded: in the filesystem.\n -#: e2fsck/problem.c:622 +#: e2fsck/problem.c:644 msgid "" "\n" "The bad @b @i has probably been corrupted. You probably\n" @@ -1458,7 +1464,7 @@ msgstr "" #. @-expanded: \n #. @-expanded: If the block is really bad, the filesystem can not be fixed.\n -#: e2fsck/problem.c:629 +#: e2fsck/problem.c:651 msgid "" "\n" "If the @b is really bad, the @f can not be fixed.\n" @@ -1469,7 +1475,7 @@ msgstr "" #. @-expanded: You can remove this block from the bad block list and hope\n #. @-expanded: that the block is really OK. But there are no guarantees.\n #. @-expanded: \n -#: e2fsck/problem.c:634 +#: e2fsck/problem.c:656 msgid "" "You can remove this @b from the bad @b list and hope\n" "that the @b is really OK. But there are no guarantees.\n" @@ -1480,124 +1486,124 @@ msgstr "" "\n" #. @-expanded: The primary superblock (%b) is on the bad block list.\n -#: e2fsck/problem.c:640 +#: e2fsck/problem.c:662 msgid "The primary @S (%b) is on the bad @b list.\n" msgstr "主@S(%b)位于坏@b列表中。\n" #. @-expanded: Block %b in the primary group descriptors is on the bad block list\n -#: e2fsck/problem.c:645 +#: e2fsck/problem.c:667 msgid "Block %b in the primary @g descriptors is on the bad @b list\n" msgstr "主@g描述符中的块 %b 位于坏@b列表中\n" #. @-expanded: Warning: Group %g's superblock (%b) is bad.\n -#: e2fsck/problem.c:651 +#: e2fsck/problem.c:673 msgid "Warning: Group %g's @S (%b) is bad.\n" msgstr "警告:组 %g 的@S(%b)为坏块。\n" #. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n -#: e2fsck/problem.c:657 +#: e2fsck/problem.c:679 msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n" msgstr "" "警告:组 %g 描述符的备份含有一个坏@b(%b)。\n" "\n" #. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n -#: e2fsck/problem.c:663 +#: e2fsck/problem.c:685 msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n" msgstr "检测到@b #%b 为坏@b,但原因未知(可能是程序错误导致的)。\n" #. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n -#: e2fsck/problem.c:669 +#: e2fsck/problem.c:691 msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n" msgstr "在@b@g %g 中为 %s 分配 %N 个连续的@b时出错:%m\n" #. @-expanded: error allocating block buffer for relocating %s\n -#: e2fsck/problem.c:674 -#, c-format +#: e2fsck/problem.c:697 +#, no-c-format msgid "@A @b buffer for relocating %s\n" msgstr "重定位 %s 时分配@b缓存出错\n" #. @-expanded: Relocating group %g's %s from %b to %c...\n -#: e2fsck/problem.c:679 +#: e2fsck/problem.c:702 msgid "Relocating @g %g's %s from %b to %c...\n" msgstr "正在将@g %g 的 %s 从 %b 重定位至 %c...\n" #. @-expanded: Relocating group %g's %s to %c...\n -#: e2fsck/problem.c:684 -#, c-format +#: e2fsck/problem.c:708 +#, no-c-format msgid "Relocating @g %g's %s to %c...\n" msgstr "正在将@g %g 的 %s 重定位至 %c...\n" #. @-expanded: Warning: could not read block %b of %s: %m\n -#: e2fsck/problem.c:689 +#: e2fsck/problem.c:713 msgid "Warning: could not read @b %b of %s: %m\n" msgstr "警告:无法从%s中读取@b %b:%m\n" #. @-expanded: Warning: could not write block %b for %s: %m\n -#: e2fsck/problem.c:694 +#: e2fsck/problem.c:718 msgid "Warning: could not write @b %b for %s: %m\n" msgstr "警告:无法向%s中写入@b %b:%m\n" #. @-expanded: error allocating inode bitmap (%N): %m\n -#: e2fsck/problem.c:699 e2fsck/problem.c:1776 +#: e2fsck/problem.c:723 e2fsck/problem.c:1871 msgid "@A @i @B (%N): %m\n" msgstr "分配@i@B(%N)时出错:%m\n" #. @-expanded: error allocating block bitmap (%N): %m\n -#: e2fsck/problem.c:704 +#: e2fsck/problem.c:728 msgid "@A @b @B (%N): %m\n" msgstr "分配@b@B(%N)时出错:%m\n" #. @-expanded: error allocating icount link information: %m\n -#: e2fsck/problem.c:709 -#, c-format +#: e2fsck/problem.c:734 +#, no-c-format msgid "@A icount link information: %m\n" msgstr "分配icount链接信息时出错:%m\n" #. @-expanded: error allocating directory block array: %m\n -#: e2fsck/problem.c:714 -#, c-format +#: e2fsck/problem.c:740 +#, no-c-format msgid "@A @d @b array: %m\n" msgstr "分配@d@b数组时出错:%m\n" #. @-expanded: Error while scanning inodes (%i): %m\n -#: e2fsck/problem.c:719 -#, c-format +#: e2fsck/problem.c:746 +#, no-c-format msgid "Error while scanning @is (%i): %m\n" msgstr "扫描@i(%i)时出错:%m\n" #. @-expanded: Error while iterating over blocks in inode %i: %m\n -#: e2fsck/problem.c:724 -#, c-format +#: e2fsck/problem.c:752 +#, no-c-format msgid "Error while iterating over @bs in @i %i: %m\n" msgstr "迭代@i %i 中的@b时出错:%m\n" #. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n -#: e2fsck/problem.c:729 +#: e2fsck/problem.c:757 msgid "Error storing @i count information (@i=%i, count=%N): %m\n" msgstr "写入@i计数信息时出错(@i %i,计数=%N):%m\n" #. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n -#: e2fsck/problem.c:734 +#: e2fsck/problem.c:762 msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n" msgstr "写入@d@b信息时出错(@i %i,@b %b,数量=%N)\n" #. @-expanded: Error reading inode %i: %m\n -#: e2fsck/problem.c:740 -#, c-format +#: e2fsck/problem.c:769 +#, no-c-format msgid "Error reading @i %i: %m\n" msgstr "读取@i %i出错:%m\n" #. @-expanded: inode %i has imagic flag set. -#: e2fsck/problem.c:748 -#, c-format +#: e2fsck/problem.c:778 +#, no-c-format msgid "@i %i has imagic flag set. " msgstr "@i %i 被设置了imagic标志。 " #. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n #. @-expanded: or append-only flag set. -#: e2fsck/problem.c:753 -#, c-format +#: e2fsck/problem.c:784 +#, no-c-format msgid "" "Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n" "or append-only flag set. " @@ -1606,198 +1612,198 @@ msgstr "" "(保护)或 a(仅追加) 标志。 " #. @-expanded: Special (device/socket/fifo) inode %i has non-zero size. -#: e2fsck/problem.c:759 -#, c-format +#: e2fsck/problem.c:791 +#, no-c-format msgid "Special (@v/socket/fifo) @i %i has non-zero size. " msgstr "特殊文件(@v/套接字/队列)@i %i 为非零大小。 " #. @-expanded: journal inode is not in use, but contains data. -#: e2fsck/problem.c:769 +#: e2fsck/problem.c:801 msgid "@j @i is not in use, but contains data. " msgstr "@j @i 未被使用,但含有数据。 " #. @-expanded: journal is not regular file. -#: e2fsck/problem.c:774 +#: e2fsck/problem.c:806 msgid "@j is not regular file. " msgstr "@j不是普通文件。 " #. @-expanded: inode %i was part of the orphaned inode list. -#: e2fsck/problem.c:779 -#, c-format +#: e2fsck/problem.c:812 +#, no-c-format msgid "@i %i was part of the @o @i list. " msgstr "@i %i 位于@o@i列表中。 " #. @-expanded: inodes that were part of a corrupted orphan linked list found. -#: e2fsck/problem.c:785 +#: e2fsck/problem.c:818 msgid "@is that were part of a corrupted orphan linked list found. " msgstr "发现了可能属于损坏的孤立链接表的@i。 " #. @-expanded: error allocating refcount structure (%N): %m\n -#: e2fsck/problem.c:790 +#: e2fsck/problem.c:823 msgid "@A refcount structure (%N): %m\n" msgstr "分配refcount结构体(%N)时出错:%m\n" #. @-expanded: Error reading extended attribute block %b for inode %i. -#: e2fsck/problem.c:795 +#: e2fsck/problem.c:828 msgid "Error reading @a @b %b for @i %i. " msgstr "读取@i %i 的@a@b %b 时出错。" #. @-expanded: inode %i has a bad extended attribute block %b. -#: e2fsck/problem.c:800 +#: e2fsck/problem.c:833 msgid "@i %i has a bad @a @b %b. " msgstr "@i %i 有一个 @a@b %b。 " #. @-expanded: Error reading extended attribute block %b (%m). -#: e2fsck/problem.c:805 +#: e2fsck/problem.c:838 msgid "Error reading @a @b %b (%m). " msgstr "读取@a@b %b 时出错(%m)。 " #. @-expanded: extended attribute block %b has reference count %r, should be %N. -#: e2fsck/problem.c:810 +#: e2fsck/problem.c:843 msgid "@a @b %b has reference count %r, @s %N. " msgstr "@a@b %b 的引用计数为 %r,@s %N。 " #. @-expanded: Error writing extended attribute block %b (%m). -#: e2fsck/problem.c:815 +#: e2fsck/problem.c:848 msgid "Error writing @a @b %b (%m). " msgstr "写入@a@b %b 时出错(%m)。 " #. @-expanded: extended attribute block %b has h_blocks > 1. -#: e2fsck/problem.c:820 +#: e2fsck/problem.c:853 msgid "@a @b %b has h_@bs > 1. " msgstr "@a@b %b 的h_blocks >1。 " #. @-expanded: error allocating extended attribute region allocation structure. -#: e2fsck/problem.c:825 +#: e2fsck/problem.c:858 msgid "@A @a region allocation structure. " msgstr "构建外部属性区域的分配结构体时出错。" #. @-expanded: extended attribute block %b is corrupt (allocation collision). -#: e2fsck/problem.c:830 +#: e2fsck/problem.c:863 msgid "@a @b %b is corrupt (allocation collision). " msgstr "@a@b %b 已损坏(分配冲突)。 " #. @-expanded: extended attribute block %b is corrupt (invalid name). -#: e2fsck/problem.c:835 +#: e2fsck/problem.c:868 msgid "@a @b %b is corrupt (@n name). " msgstr "@a@b %b 已损坏(@n名称)。 " #. @-expanded: extended attribute block %b is corrupt (invalid value). -#: e2fsck/problem.c:840 +#: e2fsck/problem.c:873 msgid "@a @b %b is corrupt (@n value). " msgstr "@a@b %b 已损坏(@n值)。 " #. @-expanded: inode %i is too big. -#: e2fsck/problem.c:845 -#, c-format +#: e2fsck/problem.c:879 +#, no-c-format msgid "@i %i is too big. " msgstr "@i %i 过大。 " #. @-expanded: %B (%b) causes directory to be too big. -#: e2fsck/problem.c:849 +#: e2fsck/problem.c:883 msgid "%B (%b) causes @d to be too big. " msgstr "%B(%b)造成@d过大。 " -#: e2fsck/problem.c:854 +#: e2fsck/problem.c:888 msgid "%B (%b) causes file to be too big. " msgstr "%B(%b)造成文件过大。 " -#: e2fsck/problem.c:859 +#: e2fsck/problem.c:893 msgid "%B (%b) causes symlink to be too big. " msgstr "%B(%b)造成符号链接过大。 " #. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n -#: e2fsck/problem.c:864 -#, c-format +#: e2fsck/problem.c:899 +#, no-c-format msgid "@i %i has INDEX_FL flag set on @f without htree support.\n" msgstr "@i %i 被设置了INDEX_FL标志,但文件系统不支持htree。\n" #. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n -#: e2fsck/problem.c:869 -#, c-format +#: e2fsck/problem.c:905 +#, no-c-format msgid "@i %i has INDEX_FL flag set but is not a @d.\n" msgstr "@i %i 被设置了INDEX_FL标志,但它并非目录。\n" #. @-expanded: HTREE directory inode %i has an invalid root node.\n -#: e2fsck/problem.c:874 -#, c-format +#: e2fsck/problem.c:911 +#, no-c-format msgid "@h %i has an @n root node.\n" msgstr "@h %i 有一个@n根节点。\n" #. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n -#: e2fsck/problem.c:879 +#: e2fsck/problem.c:916 msgid "@h %i has an unsupported hash version (%N)\n" msgstr "@h %i 有一个无效的hash版本(%N)\n" #. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n -#: e2fsck/problem.c:884 -#, c-format +#: e2fsck/problem.c:922 +#, no-c-format msgid "@h %i uses an incompatible htree root node flag.\n" msgstr "@h %i 使用了一个不兼容的htree根节点标志。\n" #. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n -#: e2fsck/problem.c:889 +#: e2fsck/problem.c:927 msgid "@h %i has a tree depth (%N) which is too big\n" msgstr "@h %i 树的深度过大(%N)\n" #. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n #. @-expanded: filesystem metadata. -#: e2fsck/problem.c:895 +#: e2fsck/problem.c:933 msgid "" "Bad @b @i has an indirect @b (%b) that conflicts with\n" "@f metadata. " msgstr "坏@b@i含有一个与@f元数据冲突的连接@b(%b)。 " #. @-expanded: Resize inode (re)creation failed: %m. -#: e2fsck/problem.c:901 -#, c-format +#: e2fsck/problem.c:940 +#, no-c-format msgid "Resize @i (re)creation failed: %m." msgstr "改变@i大小失败:%m。" #. @-expanded: inode %i has a extra size (%IS) which is invalid\n -#: e2fsck/problem.c:906 +#: e2fsck/problem.c:945 msgid "@i %i has a extra size (%IS) which is @n\n" msgstr "@i %i 有一个额外的大小 %lS(@n值)\n" #. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n -#: e2fsck/problem.c:911 +#: e2fsck/problem.c:950 msgid "@a in @i %i has a namelen (%N) which is @n\n" msgstr "@i %i 中的@a有一个名称长度%lS(@n值)\n" #. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n -#: e2fsck/problem.c:916 +#: e2fsck/problem.c:955 msgid "@a in @i %i has a value offset (%N) which is @n\n" msgstr "@i %i 中的@a含有一个@n的偏移量(%N)\n" #. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n -#: e2fsck/problem.c:921 +#: e2fsck/problem.c:960 msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n" msgstr "@i %i 中的@a含有一个@n的数值块(%N),应当为0\n" #. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n -#: e2fsck/problem.c:926 +#: e2fsck/problem.c:965 msgid "@a in @i %i has a value size (%N) which is @n\n" msgstr "@i %i 中的@a含有一个@n的大小(%N)\n" #. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n -#: e2fsck/problem.c:931 +#: e2fsck/problem.c:970 msgid "@a in @i %i has a hash (%N) which is @n\n" msgstr "@i %i 中的@a有一个@nhash值(%N)\n" #. @-expanded: inode %i is a %It but it looks like it is really a directory.\n -#: e2fsck/problem.c:936 +#: e2fsck/problem.c:975 msgid "@i %i is a %It but it looks like it is really a directory.\n" msgstr "@i %i 是一个@lt,但它实际上可能是一个目录。\n" #. @-expanded: Error while reading over extent tree in inode %i: %m\n -#: e2fsck/problem.c:941 -#, c-format +#: e2fsck/problem.c:981 +#, no-c-format msgid "Error while reading over @x tree in @i %i: %m\n" msgstr "读取@i %i 中的@x树时出错:%m\n" #. @-expanded: Failed to iterate extents in inode %i\n #. @-expanded: \t(op %s, blk %b, lblk %c): %m\n -#: e2fsck/problem.c:946 +#: e2fsck/problem.c:986 msgid "" "Failed to iterate extents in @i %i\n" "\t(op %s, blk %b, lblk %c): %m\n" @@ -1807,7 +1813,7 @@ msgstr "" #. @-expanded: inode %i has an invalid extent\n #. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n -#: e2fsck/problem.c:952 +#: e2fsck/problem.c:992 msgid "" "@i %i has an @n extent\n" "\t(logical @b %c, @n physical @b %b, len %N)\n" @@ -1817,7 +1823,7 @@ msgstr "" #. @-expanded: inode %i has an invalid extent\n #. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n -#: e2fsck/problem.c:957 +#: e2fsck/problem.c:997 msgid "" "@i %i has an @n extent\n" "\t(logical @b %c, physical @b %b, @n len %N)\n" @@ -1826,31 +1832,31 @@ msgstr "" "\t(逻辑块 %c,物理块@b %b,长度 %N)\n" #. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n -#: e2fsck/problem.c:962 -#, c-format +#: e2fsck/problem.c:1003 +#, no-c-format msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n" msgstr "@i %i 被设置了EXTENTS_FL标志,但文件系统不支持extent。\n" #. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n -#: e2fsck/problem.c:967 -#, c-format +#: e2fsck/problem.c:1009 +#, no-c-format msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n" msgstr "@i %i 为extent格式,但@S不具有EXTENTS特性\n" #. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n -#: e2fsck/problem.c:972 -#, c-format +#: e2fsck/problem.c:1015 +#, no-c-format msgid "@i %i missing EXTENT_FL, but is in extents format\n" msgstr "@i %i 不具有EXTENT_FL标志,但却为EXTENTS格式\n" -#: e2fsck/problem.c:977 -#, c-format +#: e2fsck/problem.c:1021 +#, no-c-format msgid "Fast symlink %i has EXTENT_FL set. " msgstr "直接符号链接 %i 被设置了EXTENT_FL标志。 " #. @-expanded: inode %i has out of order extents\n #. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n -#: e2fsck/problem.c:982 +#: e2fsck/problem.c:1026 msgid "" "@i %i has out of order extents\n" "\t(@n logical @b %c, physical @b %b, len %N)\n" @@ -1859,40 +1865,39 @@ msgstr "" "\t(@n 逻辑@b %c,物理@b %b,长度 %N)\n" #. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n -#: e2fsck/problem.c:986 +#: e2fsck/problem.c:1030 msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n" msgstr "@i %i 是一个无效的extent节点(块 %b,lblk %c)\n" #. @-expanded: Error converting subcluster block bitmap: %m\n -#: e2fsck/problem.c:991 -#, c-format +#: e2fsck/problem.c:1036 +#, no-c-format msgid "Error converting subcluster @b @B: %m\n" msgstr "转换子簇的@d@b时出错:%m\n" #. @-expanded: quota inode is not a regular file. -#: e2fsck/problem.c:996 -#, fuzzy +#: e2fsck/problem.c:1041 msgid "@q @i is not a regular file. " -msgstr "@q@i不是普通文件。 " +msgstr "@q @i 不是普通文件。 " #. @-expanded: quota inode is not in use, but contains data. -#: e2fsck/problem.c:1001 +#: e2fsck/problem.c:1046 msgid "@q @i is not in use, but contains data. " msgstr "@q @i 未被使用,但含有数据。 " #. @-expanded: quota inode is visible to the user. -#: e2fsck/problem.c:1006 +#: e2fsck/problem.c:1051 msgid "@q @i is visible to the user. " msgstr "使用中的@q@i被对用户可见。 " #. @-expanded: The bad block inode looks invalid. -#: e2fsck/problem.c:1011 +#: e2fsck/problem.c:1056 msgid "The bad @b @i looks @n. " msgstr "坏@b@i似乎是@n。 " #. @-expanded: inode %i has zero length extent\n #. @-expanded: \t(invalid logical block %c, physical block %b)\n -#: e2fsck/problem.c:1016 +#: e2fsck/problem.c:1061 msgid "" "@i %i has zero length extent\n" "\t(@n logical @b %c, physical @b %b)\n" @@ -1901,26 +1906,26 @@ msgstr "" "\t(@n 逻辑@b %c,物理@b %b)\n" #. @-expanded: inode %i seems to contain garbage. -#: e2fsck/problem.c:1021 -#, c-format +#: e2fsck/problem.c:1067 +#, no-c-format msgid "@i %i seems to contain garbage. " msgstr "@i %i 含有无效数据。" #. @-expanded: inode %i passes checks, but checksum does not match inode. -#: e2fsck/problem.c:1026 -#, c-format +#: e2fsck/problem.c:1073 +#, no-c-format msgid "@i %i passes checks, but checksum does not match @i. " msgstr "@i %i 通过检验,但其校验值与自身不符。" #. @-expanded: inode %i extended attribute is corrupt (allocation collision). -#: e2fsck/problem.c:1031 -#, c-format +#: e2fsck/problem.c:1079 +#, no-c-format msgid "@i %i @a is corrupt (allocation collision). " msgstr "@i %i @a 已损坏(分配冲突)。 " #. @-expanded: inode %i extent block passes checks, but checksum does not match extent\n #. @-expanded: \t(logical block %c, physical block %b, len %N)\n -#: e2fsck/problem.c:1039 +#: e2fsck/problem.c:1087 msgid "" "@i %i extent block passes checks, but checksum does not match extent\n" "\t(logical @b %c, physical @b %b, len %N)\n" @@ -1929,13 +1934,13 @@ msgstr "" "\t(逻辑@b %c,物理@b %b,长度 %N)\n" #. @-expanded: inode %i extended attribute block %b passes checks, but checksum does not match block. -#: e2fsck/problem.c:1048 +#: e2fsck/problem.c:1096 msgid "@i %i @a @b %b passes checks, but checksum does not match @b. " msgstr "@i %i 的@a @b %b 通过检验,但其校验值与自身不符。" #. @-expanded: Interior extent node level %N of inode %i:\n #. @-expanded: Logical start %b does not match logical start %c at next level. -#: e2fsck/problem.c:1053 +#: e2fsck/problem.c:1101 msgid "" "Interior @x node level %N of @i %i:\n" "Logical start %b does not match logical start %c at next level. " @@ -1945,7 +1950,7 @@ msgstr "" #. @-expanded: inode %i, end of extent exceeds allowed value\n #. @-expanded: \t(logical block %c, physical block %b, len %N)\n -#: e2fsck/problem.c:1059 +#: e2fsck/problem.c:1107 msgid "" "@i %i, end of extent exceeds allowed value\n" "\t(logical @b %c, physical @b %b, len %N)\n" @@ -1954,37 +1959,37 @@ msgstr "" "\t(逻辑@b %c,物理块@b %b,长度 %N)\n" #. @-expanded: inode %i has inline data, but superblock is missing INLINE_DATA feature\n -#: e2fsck/problem.c:1064 -#, c-format +#: e2fsck/problem.c:1113 +#, no-c-format msgid "@i %i has inline data, but @S is missing INLINE_DATA feature\n" msgstr "@i %i 含有内联数据,但@S不具有 INLINE_DATA 特性\n" #. @-expanded: inode %i has INLINE_DATA_FL flag on filesystem without inline data support.\n -#: e2fsck/problem.c:1069 -#, c-format +#: e2fsck/problem.c:1119 +#, no-c-format msgid "@i %i has INLINE_DATA_FL flag on @f without inline data support.\n" msgstr "@i %i 被设置了 INLINE_DATA_FL 标志,但文件系统不支持内联数据。\n" #. @-expanded: inode %i block %b conflicts with critical metadata, skipping block checks.\n -#: e2fsck/problem.c:1076 -msgid "" -"@i %i block %b conflicts with critical metadata, skipping block checks.\n" +#: e2fsck/problem.c:1127 +#, no-c-format +msgid "@i %i block %b conflicts with critical metadata, skipping block checks.\n" msgstr "@i %i 块 %b 与关键元数据冲突,跳过对块的检查。\n" #. @-expanded: directory inode %i block %b should be at block %c. -#: e2fsck/problem.c:1081 +#: e2fsck/problem.c:1132 msgid "@d @i %i @b %b should be at @b %c. " msgstr "@d@i %i @b %b 应为@b %c。 " #. @-expanded: directory inode %i has extent marked uninitialized at block %c. -#: e2fsck/problem.c:1086 -#, c-format +#: e2fsck/problem.c:1138 +#, no-c-format msgid "@d @i %i has @x marked uninitialized at @b %c. " msgstr "@d@i %i 含有被标记为未初始化的@x,位于@b %c。 " #. @-expanded: inode %i logical block %b (physical block %c) violates cluster allocation rules.\n #. @-expanded: Will fix in pass 1B.\n -#: e2fsck/problem.c:1091 +#: e2fsck/problem.c:1143 msgid "" "@i %i logical @b %b (physical @b %c) violates cluster allocation rules.\n" "Will fix in pass 1B.\n" @@ -1993,15 +1998,15 @@ msgstr "" "将会在第 1B 步中进行修复。\n" #. @-expanded: inode %i has INLINE_DATA_FL flag but extended attribute not found. -#: e2fsck/problem.c:1096 -#, c-format +#: e2fsck/problem.c:1149 +#, no-c-format msgid "@i %i has INLINE_DATA_FL flag but @a not found. " msgstr "@i %i 被设置了INDEX_DATA_FL标志,但找不到相应的@a。" #. @-expanded: Special (device/socket/fifo) file (inode %i) has extents\n #. @-expanded: or inline-data flag set. -#: e2fsck/problem.c:1102 -#, c-format +#: e2fsck/problem.c:1156 +#, no-c-format msgid "" "Special (@v/socket/fifo) file (@i %i) has extents\n" "or inline-data flag set. " @@ -2010,42 +2015,42 @@ msgstr "" "extents 或内联数据标志。" #. @-expanded: inode %i has extent header but inline data flag is set.\n -#: e2fsck/problem.c:1108 -#, c-format +#: e2fsck/problem.c:1163 +#, no-c-format msgid "@i %i has @x header but inline data flag is set.\n" msgstr "@i %i 含有@x头部,但被设置了内联数据标志。\n" #. @-expanded: inode %i seems to have inline data but extent flag is set.\n -#: e2fsck/problem.c:1113 -#, c-format +#: e2fsck/problem.c:1169 +#, no-c-format msgid "@i %i seems to have inline data but @x flag is set.\n" msgstr "@i %i 似乎含有内联数据,但被设置了@x标志。\n" #. @-expanded: inode %i seems to have block map but inline data and extent flags set.\n -#: e2fsck/problem.c:1118 -#, c-format +#: e2fsck/problem.c:1175 +#, no-c-format msgid "@i %i seems to have @b map but inline data and @x flags set.\n" msgstr "@i %i 似乎含有@b位图,但被设置了内联数据标志和@x标志。\n" #. @-expanded: inode %i has inline data and extent flags set but i_block contains junk.\n -#: e2fsck/problem.c:1123 -#, c-format +#: e2fsck/problem.c:1181 +#, no-c-format msgid "@i %i has inline data and @x flags set but i_block contains junk.\n" msgstr "@i %i 含有内联数据且被设置了@x标志,但 i_block 中含有无效数据。\n" #. @-expanded: Bad block list says the bad block list inode is bad. -#: e2fsck/problem.c:1128 +#: e2fsck/problem.c:1186 msgid "Bad block list says the bad block list @i is bad. " msgstr "坏块列表中的数据表明,坏块列表@i 已损坏。" #. @-expanded: error allocating extent region allocation structure. -#: e2fsck/problem.c:1133 +#: e2fsck/problem.c:1191 msgid "@A @x region allocation structure. " msgstr "构建extent区域的分配结构体时出错。" #. @-expanded: inode %i has a duplicate extent mapping\n #. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n -#: e2fsck/problem.c:1138 +#: e2fsck/problem.c:1196 msgid "" "@i %i has a duplicate @x mapping\n" "\t(logical @b %c, @n physical @b %b, len %N)\n" @@ -2054,48 +2059,48 @@ msgstr "" "\t(逻辑块 %c,@n物理块@b %b,长度 %N)\n" #. @-expanded: error allocating memory for encrypted directory list\n -#: e2fsck/problem.c:1143 +#: e2fsck/problem.c:1201 msgid "@A memory for encrypted @d list\n" msgstr "为加密@d列表分配内存时出错\n" #. @-expanded: inode %i extent tree could be more shallow (%b; could be <= %c)\n -#: e2fsck/problem.c:1148 +#: e2fsck/problem.c:1206 msgid "@i %i @x tree could be more shallow (%b; could be <= %c)\n" msgstr "@i %i @x树的深度可以更小(当前为%b;可以 <= %c)\n" #. @-expanded: inode %i on bigalloc filesystem cannot be block mapped. -#: e2fsck/problem.c:1153 -#, c-format +#: e2fsck/problem.c:1212 +#, no-c-format msgid "@i %i on bigalloc @f cannot be @b mapped. " msgstr "位于 bigalloc @f 的@i %i on bigalloc @f 无法被@b映射。" #. @-expanded: inode %i has corrupt extent header. -#: e2fsck/problem.c:1158 -#, c-format +#: e2fsck/problem.c:1218 +#, no-c-format msgid "@i %i has corrupt @x header. " msgstr "@i %i 含有损坏的@x头部。" #. @-expanded: Timestamp(s) on inode %i beyond 2310-04-04 are likely pre-1970.\n -#: e2fsck/problem.c:1163 -#, c-format +#: e2fsck/problem.c:1224 +#, no-c-format msgid "Timestamp(s) on @i %i beyond 2310-04-04 are likely pre-1970.\n" msgstr "@i %i 的时间戳超过了 2310-04-04,可能应为 1970 年之前。\n" #. @-expanded: inode %i has illegal extended attribute value inode %N.\n -#: e2fsck/problem.c:1168 -#, fuzzy +#: e2fsck/problem.c:1229 msgid "@i %i has @I @a value @i %N.\n" -msgstr "@i %i 有一个 @a@b %b。 " +msgstr "@i %i 有一个 @I @a 值 @i %N。\n" #. @-expanded: inode %i has invalid extended attribute. EA inode %N missing EA_INODE flag.\n -#: e2fsck/problem.c:1174 +#: e2fsck/problem.c:1235 #, fuzzy +#| msgid "@i %i has inline data, but @S is missing INLINE_DATA feature\n" msgid "@i %i has @n @a. EA @i %N missing EA_INODE flag.\n" msgstr "@i %i 含有内联数据,但@S不具有 INLINE_DATA 特性\n" #. @-expanded: EA inode %N for parent inode %i missing EA_INODE flag.\n #. @-expanded: -#: e2fsck/problem.c:1179 +#: e2fsck/problem.c:1240 msgid "" "EA @i %N for parent @i %i missing EA_INODE flag.\n" " " @@ -2104,7 +2109,7 @@ msgstr "" #. @-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 -#: e2fsck/problem.c:1187 +#: e2fsck/problem.c:1248 msgid "" "\n" "Running additional passes to resolve @bs claimed by more than one @i...\n" @@ -2115,46 +2120,46 @@ msgstr "" "第 1B 步:重新扫描@m @b\n" #. @-expanded: multiply-claimed block(s) in inode %i: -#: e2fsck/problem.c:1193 -#, c-format +#: e2fsck/problem.c:1255 +#, no-c-format msgid "@m @b(s) in @i %i:" msgstr "@m@b位于@i %i:" -#: e2fsck/problem.c:1208 -#, c-format +#: e2fsck/problem.c:1271 +#, no-c-format msgid "Error while scanning inodes (%i): %m\n" msgstr "扫描Inode(%i\\)时出错:%m\n" #. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n -#: e2fsck/problem.c:1213 -#, c-format +#: e2fsck/problem.c:1277 +#, no-c-format msgid "@A @i @B (@i_dup_map): %m\n" msgstr "分配@i@B时出错(inode_dup_map):%m\n" #. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n -#: e2fsck/problem.c:1218 -#, c-format +#: e2fsck/problem.c:1283 +#, no-c-format msgid "Error while iterating over @bs in @i %i (%s): %m\n" msgstr "迭代@i %i中的@b时出错(%s):%m\n" #. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n -#: e2fsck/problem.c:1223 e2fsck/problem.c:1585 +#: e2fsck/problem.c:1288 e2fsck/problem.c:1663 msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n" msgstr "为@aB %b(@i %i)调整refcount时出错:%m\n" #. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n -#: e2fsck/problem.c:1233 +#: e2fsck/problem.c:1298 msgid "Pass 1C: Scanning directories for @is with @m @bs\n" msgstr "第 1C 步:扫描含有@m@b的目录@i\n" #. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n -#: e2fsck/problem.c:1239 +#: e2fsck/problem.c:1304 msgid "Pass 1D: Reconciling @m @bs\n" msgstr "第 1C 步:调整@m@b\n" #. @-expanded: File %Q (inode #%i, mod time %IM) \n #. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n -#: e2fsck/problem.c:1244 +#: e2fsck/problem.c:1309 msgid "" "File %Q (@i #%i, mod time %IM) \n" " has %r @m @b(s), shared with %N file(s):\n" @@ -2163,18 +2168,18 @@ msgstr "" "与 %N 个文件共享 %r 个@m@b\n" #. @-expanded: \t%Q (inode #%i, mod time %IM)\n -#: e2fsck/problem.c:1250 +#: e2fsck/problem.c:1315 msgid "\t%Q (@i #%i, mod time %IM)\n" msgstr "\t%Q(@i #%i,修改时间 %IM)\n" #. @-expanded: \t<filesystem metadata>\n -#: e2fsck/problem.c:1255 +#: e2fsck/problem.c:1320 msgid "\t<@f metadata>\n" msgstr "\t<@f元数据>\n" #. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n #. @-expanded: \n -#: e2fsck/problem.c:1260 +#: e2fsck/problem.c:1325 msgid "" "(There are %N @is containing @m @bs.)\n" "\n" @@ -2184,7 +2189,7 @@ msgstr "" #. @-expanded: multiply-claimed blocks already reassigned or cloned.\n #. @-expanded: \n -#: e2fsck/problem.c:1265 +#: e2fsck/problem.c:1330 msgid "" "@m @bs already reassigned or cloned.\n" "\n" @@ -2192,346 +2197,347 @@ msgstr "" "@m@b已被重新分配或克隆。\n" "\n" -#: e2fsck/problem.c:1278 -#, c-format +#: e2fsck/problem.c:1344 +#, no-c-format msgid "Couldn't clone file: %m\n" msgstr "无法克隆文件:%m\n" #. @-expanded: Pass 1E: Optimizing extent trees\n -#: e2fsck/problem.c:1284 +#: e2fsck/problem.c:1350 msgid "Pass 1E: Optimizing @x trees\n" msgstr "第 1E 步:优化@x树\n" #. @-expanded: Failed to optimize extent tree %p (%i): %m\n -#: e2fsck/problem.c:1289 -#, c-format +#: e2fsck/problem.c:1356 +#, no-c-format msgid "Failed to optimize @x tree %p (%i): %m\n" msgstr "优化@x树 %p(%i)失败:%m\n" #. @-expanded: Optimizing extent trees: -#: e2fsck/problem.c:1294 +#: e2fsck/problem.c:1361 msgid "Optimizing @x trees: " msgstr "优化@x树:" -#: e2fsck/problem.c:1309 +#: e2fsck/problem.c:1376 msgid "Internal error: max extent tree depth too large (%b; expected=%c).\n" msgstr "内部错误:extent树的最大深度过大(当前为 %b;应为 %c)。\n" #. @-expanded: inode %i extent tree (at level %b) could be shorter. -#: e2fsck/problem.c:1314 +#: e2fsck/problem.c:1381 msgid "@i %i @x tree (at level %b) could be shorter. " msgstr "@i %i 的@x树(位于第 %b 层)的深度可以更小。" #. @-expanded: inode %i extent tree (at level %b) could be narrower. -#: e2fsck/problem.c:1319 +#: e2fsck/problem.c:1386 msgid "@i %i @x tree (at level %b) could be narrower. " msgstr "@i %i 的@x树(位于第 %b 层)可以更窄。" #. @-expanded: Pass 2: Checking directory structure\n -#: e2fsck/problem.c:1326 +#: e2fsck/problem.c:1393 msgid "Pass 2: Checking @d structure\n" msgstr "第 2 步:检查目录结构\n" #. @-expanded: invalid inode number for '.' in directory inode %i.\n -#: e2fsck/problem.c:1331 -#, c-format +#: e2fsck/problem.c:1399 +#, no-c-format msgid "@n @i number for '.' in @d @i %i.\n" msgstr "@d@i %i 中“.”的@n@i编号无效。\n" #. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n -#: e2fsck/problem.c:1336 +#: e2fsck/problem.c:1404 msgid "@E has @n @i #: %Di.\n" msgstr "@E含有@n@i #:%Di\n" #. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di. -#: e2fsck/problem.c:1341 +#: e2fsck/problem.c:1409 msgid "@E has @D/unused @i %Di. " msgstr "@E含有@D或未使用的@ %Di。 " #. @-expanded: entry '%Dn' in %p (%i) is a link to '.' -#: e2fsck/problem.c:1346 +#: e2fsck/problem.c:1414 msgid "@E @L to '.' " msgstr "@E是一个指向“.”的链接" #. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n -#: e2fsck/problem.c:1351 +#: e2fsck/problem.c:1419 msgid "@E points to @i (%Di) located in a bad @b.\n" msgstr "@E指向位于坏@b的@i(%Di)。\n" #. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n -#: e2fsck/problem.c:1356 +#: e2fsck/problem.c:1424 msgid "@E @L to @d %P (%Di).\n" msgstr "@E是一个指向@d %P(%Di)的链接。\n" #. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n -#: e2fsck/problem.c:1361 +#: e2fsck/problem.c:1429 msgid "@E @L to the @r.\n" msgstr "@E是一个指向@r的链接。\n" #. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n -#: e2fsck/problem.c:1366 +#: e2fsck/problem.c:1434 msgid "@E has illegal characters in its name.\n" msgstr "@E的名称中有无效字符。\n" #. @-expanded: Missing '.' in directory inode %i.\n -#: e2fsck/problem.c:1371 -#, c-format +#: e2fsck/problem.c:1440 +#, no-c-format msgid "Missing '.' in @d @i %i.\n" msgstr "@d@i %i 中缺少“.”。\n" #. @-expanded: Missing '..' in directory inode %i.\n -#: e2fsck/problem.c:1376 -#, c-format +#: e2fsck/problem.c:1446 +#, no-c-format msgid "Missing '..' in @d @i %i.\n" msgstr "@d@i %i 中缺少“..”。\n" #. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n -#: e2fsck/problem.c:1381 +#: e2fsck/problem.c:1451 msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n" msgstr "@d@i %i 中的第一个@e“%Dn”(@i=%Di)@s“.”\n" #. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n -#: e2fsck/problem.c:1386 +#: e2fsck/problem.c:1456 msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n" msgstr "@d@i %i 中的第二个@e“%Dn”(@i=%Di)@s“..”\n" #. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n -#: e2fsck/problem.c:1391 +#: e2fsck/problem.c:1461 msgid "i_faddr @F %IF, @s zero.\n" msgstr "@i %i (%Q)的i_faddr为 %IF,@s0。\n" #. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n -#: e2fsck/problem.c:1396 +#: e2fsck/problem.c:1466 msgid "i_file_acl @F %If, @s zero.\n" msgstr "@i %i (%Q)的i_file_acl为 %IF,@s0。\n" #. @-expanded: i_size_high for inode %i (%Q) is %Id, should be zero.\n -#: e2fsck/problem.c:1401 +#: e2fsck/problem.c:1471 #, fuzzy +#| msgid "i_fsize @F %N, @s zero.\n" msgid "i_size_high @F %Id, @s zero.\n" msgstr "@i %i (%Q)的i_size为 %N,@s0。\n" #. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n -#: e2fsck/problem.c:1406 +#: e2fsck/problem.c:1476 msgid "i_frag @F %N, @s zero.\n" msgstr "@i %i (%Q)的i_frag为 %N,@s0。\n" #. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n -#: e2fsck/problem.c:1411 +#: e2fsck/problem.c:1481 msgid "i_fsize @F %N, @s zero.\n" msgstr "@i %i (%Q)的i_size为 %N,@s0。\n" #. @-expanded: inode %i (%Q) has invalid mode (%Im).\n -#: e2fsck/problem.c:1416 +#: e2fsck/problem.c:1486 msgid "@i %i (%Q) has @n mode (%Im).\n" msgstr "@i %i(%Q)有@n模式 (%Im)。\n" #. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n -#: e2fsck/problem.c:1421 +#: e2fsck/problem.c:1491 msgid "@d @i %i, %B, offset %N: @d corrupted\n" msgstr "@d@i %i,%B,偏移量 %N:@d已损坏\n" #. @-expanded: directory inode %i, %B, offset %N: filename too long\n -#: e2fsck/problem.c:1426 +#: e2fsck/problem.c:1496 msgid "@d @i %i, %B, offset %N: filename too long\n" msgstr "@d@i %i,%B,偏移量 %N:文件名过长\n" #. @-expanded: directory inode %i has an unallocated %B. -#: e2fsck/problem.c:1431 +#: e2fsck/problem.c:1501 msgid "@d @i %i has an unallocated %B. " msgstr "@d@i %i 含有未分配的 %B。 " #. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n -#: e2fsck/problem.c:1436 -#, c-format +#: e2fsck/problem.c:1507 +#, no-c-format msgid "'.' @d @e in @d @i %i is not NULL terminated\n" msgstr "@d@i %i 中的“.”@d@e 没有以NULL终止\n" #. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n -#: e2fsck/problem.c:1441 -#, c-format +#: e2fsck/problem.c:1513 +#, no-c-format msgid "'..' @d @e in @d @i %i is not NULL terminated\n" msgstr "@d@i %i 中的“..”@d@e 没有以NULL终止\n" #. @-expanded: inode %i (%Q) is an illegal character device.\n -#: e2fsck/problem.c:1446 +#: e2fsck/problem.c:1518 msgid "@i %i (%Q) is an @I character @v.\n" msgstr "@i %i(%Q)是一个@I的字符@v。\n" #. @-expanded: inode %i (%Q) is an illegal block device.\n -#: e2fsck/problem.c:1451 +#: e2fsck/problem.c:1523 msgid "@i %i (%Q) is an @I @b @v.\n" msgstr "@i %i(%Q)是一个@I的@b@v。\n" #. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n -#: e2fsck/problem.c:1456 +#: e2fsck/problem.c:1528 msgid "@E is duplicate '.' @e.\n" msgstr "@E为重复的“.”目录@e。\n" #. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n -#: e2fsck/problem.c:1461 +#: e2fsck/problem.c:1533 msgid "@E is duplicate '..' @e.\n" msgstr "@E为重复的“..”目录@e。\n" -#: e2fsck/problem.c:1466 e2fsck/problem.c:1801 -#, c-format +#: e2fsck/problem.c:1539 e2fsck/problem.c:1898 +#, no-c-format msgid "Internal error: couldn't find dir_info for %i.\n" msgstr "内部错误:无法找到 %i 的dir_info。\n" #. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n -#: e2fsck/problem.c:1471 +#: e2fsck/problem.c:1544 msgid "@E has rec_len of %Dr, @s %N.\n" msgstr "@E的rec_len为 %Dr,@s %N。\n" #. @-expanded: error allocating icount structure: %m\n -#: e2fsck/problem.c:1476 -#, c-format +#: e2fsck/problem.c:1550 +#, no-c-format msgid "@A icount structure: %m\n" msgstr "分配icount结构体时出错:%m\n" #. @-expanded: Error iterating over directory blocks: %m\n -#: e2fsck/problem.c:1481 -#, c-format +#: e2fsck/problem.c:1556 +#, no-c-format msgid "Error iterating over @d @bs: %m\n" msgstr "迭代@d@b时出错:%m\n" #. @-expanded: Error reading directory block %b (inode %i): %m\n -#: e2fsck/problem.c:1486 +#: e2fsck/problem.c:1561 msgid "Error reading @d @b %b (@i %i): %m\n" msgstr "读取@d@b %b(@i %i)时出错:%m\n" #. @-expanded: Error writing directory block %b (inode %i): %m\n -#: e2fsck/problem.c:1491 +#: e2fsck/problem.c:1566 msgid "Error writing @d @b %b (@i %i): %m\n" msgstr "写入@d@b %b(@i %i)时出错:%m\n" #. @-expanded: error allocating new directory block for inode %i (%s): %m\n -#: e2fsck/problem.c:1496 -#, c-format +#: e2fsck/problem.c:1572 +#, no-c-format msgid "@A new @d @b for @i %i (%s): %m\n" msgstr "为@i %i(%s)分配新@d@b时出错:%m\n" #. @-expanded: Error deallocating inode %i: %m\n -#: e2fsck/problem.c:1501 -#, c-format +#: e2fsck/problem.c:1578 +#, no-c-format msgid "Error deallocating @i %i: %m\n" msgstr "取消分配@i %i时出错:%m\n" #. @-expanded: directory entry for '.' in %p (%i) is big.\n -#: e2fsck/problem.c:1506 -#, c-format +#: e2fsck/problem.c:1584 +#, no-c-format msgid "@d @e for '.' in %p (%i) is big.\n" msgstr "%p(%i)中“.”的@d@e太大。\n" #. @-expanded: inode %i (%Q) is an illegal FIFO.\n -#: e2fsck/problem.c:1511 +#: e2fsck/problem.c:1589 msgid "@i %i (%Q) is an @I FIFO.\n" msgstr "@i %i(%Q)是一个@I队列。\n" #. @-expanded: inode %i (%Q) is an illegal socket.\n -#: e2fsck/problem.c:1516 +#: e2fsck/problem.c:1594 msgid "@i %i (%Q) is an @I socket.\n" msgstr "@i %i(%Q)是一个@I套接字。\n" #. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n -#: e2fsck/problem.c:1521 +#: e2fsck/problem.c:1599 msgid "Setting filetype for @E to %N.\n" msgstr "将@E的文件类型设置为 %N。\n" #. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n -#: e2fsck/problem.c:1526 +#: e2fsck/problem.c:1604 msgid "@E has an incorrect filetype (was %Dt, @s %N).\n" msgstr "@E含有错误的文件类型(%Dt,@s %N)。\n" #. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n -#: e2fsck/problem.c:1531 +#: e2fsck/problem.c:1609 msgid "@E has filetype set.\n" msgstr "@E被设置了文件类型。\n" #. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n -#: e2fsck/problem.c:1536 +#: e2fsck/problem.c:1614 msgid "@E has a @z name.\n" msgstr "@E含有长度为零的名称。\n" #. @-expanded: Symlink %Q (inode #%i) is invalid.\n -#: e2fsck/problem.c:1541 +#: e2fsck/problem.c:1619 msgid "Symlink %Q (@i #%i) is @n.\n" msgstr "符号链接 %Q(@i #%i)无效。\n" #. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n -#: e2fsck/problem.c:1546 +#: e2fsck/problem.c:1624 msgid "@a @b @F @n (%If).\n" msgstr "@i %i 的@a@b无效(%lf)。\n" #. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n -#: e2fsck/problem.c:1551 +#: e2fsck/problem.c:1629 msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n" msgstr "@f含有大文件,但@S中未设置LARGE_FILE标志。\n" #. @-expanded: problem in HTREE directory inode %d: %B not referenced\n -#: e2fsck/problem.c:1556 +#: e2fsck/problem.c:1634 msgid "@p @h %d: %B not referenced\n" msgstr "@h %d 中发现问题:%B\n" #. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n -#: e2fsck/problem.c:1561 +#: e2fsck/problem.c:1639 msgid "@p @h %d: %B referenced twice\n" msgstr "@h %d 中发现问题:%B 被引用了两次\n" #. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n -#: e2fsck/problem.c:1566 +#: e2fsck/problem.c:1644 msgid "@p @h %d: %B has bad min hash\n" msgstr "@h %d 中发现问题:%B 含有错误的最小hash值\n" #. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n -#: e2fsck/problem.c:1571 +#: e2fsck/problem.c:1649 msgid "@p @h %d: %B has bad max hash\n" msgstr "@h %d 中发现问题:%B 含有错误的最大hash值\n" #. @-expanded: invalid HTREE directory inode %d (%q). -#: e2fsck/problem.c:1576 +#: e2fsck/problem.c:1654 msgid "@n @h %d (%q). " msgstr "@n@h %d(%q)。 " #. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n -#: e2fsck/problem.c:1580 +#: e2fsck/problem.c:1658 msgid "@p @h %d (%q): bad @b number %b.\n" msgstr "@h %d(%q)中发现问题:@b编号 %b 无效。\n" #. @-expanded: problem in HTREE directory inode %d: root node is invalid\n -#: e2fsck/problem.c:1590 -#, c-format +#: e2fsck/problem.c:1669 +#, no-c-format msgid "@p @h %d: root node is @n\n" msgstr "@p@h %d:结点@n\n" #. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n -#: e2fsck/problem.c:1595 +#: e2fsck/problem.c:1674 msgid "@p @h %d: %B has @n limit (%N)\n" msgstr "@h %d 中发现问题:%B 含有@n限制(%N)\n" #. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n -#: e2fsck/problem.c:1600 +#: e2fsck/problem.c:1679 msgid "@p @h %d: %B has @n count (%N)\n" msgstr "@h %d 中发现问题:%B 含有@n计数(%N)\n" #. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n -#: e2fsck/problem.c:1605 +#: e2fsck/problem.c:1684 msgid "@p @h %d: %B has an unordered hash table\n" msgstr "@h %d 中发现问题:%B 含有未排序的hash表\n" #. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n -#: e2fsck/problem.c:1610 +#: e2fsck/problem.c:1689 msgid "@p @h %d: %B has @n depth (%N)\n" msgstr "@h %d 中发现问题:%B 含有@n深度(%N)\n" #. @-expanded: Duplicate entry '%Dn' in %p (%i) found. -#: e2fsck/problem.c:1615 +#: e2fsck/problem.c:1694 msgid "Duplicate @E found. " msgstr "发现%p(%i)中有重复项“%Dn”。 " #. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n #. @-expanded: Rename to %s -#: e2fsck/problem.c:1620 +#: e2fsck/problem.c:1699 #, no-c-format msgid "" "@E has a non-unique filename.\n" @@ -2543,7 +2549,7 @@ msgstr "" #. @-expanded: Duplicate entry '%Dn' found.\n #. @-expanded: \tMarking %p (%i) to be rebuilt.\n #. @-expanded: \n -#: e2fsck/problem.c:1625 +#: e2fsck/problem.c:1704 msgid "" "Duplicate @e '%Dn' found.\n" "\tMarking %p (%i) to be rebuilt.\n" @@ -2554,155 +2560,156 @@ msgstr "" "\n" #. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n -#: e2fsck/problem.c:1630 +#: e2fsck/problem.c:1709 msgid "i_blocks_hi @F %N, @s zero.\n" msgstr "@i %i(%Q)的i_blocks_hi为 %N,@s0。\n" #. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n -#: e2fsck/problem.c:1635 +#: e2fsck/problem.c:1714 msgid "Unexpected @b in @h %d (%q).\n" msgstr "@h %d(%q)中有额外的@b。\n" #. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n -#: e2fsck/problem.c:1639 +#: e2fsck/problem.c:1719 msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n" msgstr "@E引用了@g %g 中的@i %Di,但该@g被设置了_INODE_UNINIT标志。 \n" #. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n -#: e2fsck/problem.c:1644 +#: e2fsck/problem.c:1724 msgid "@E references @i %Di found in @g %g's unused inodes area.\n" msgstr "@E引用了@g %g 中的@i %Di,但该@i位于未使用inode区。 \n" #. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n -#: e2fsck/problem.c:1649 +#: e2fsck/problem.c:1729 msgid "i_file_acl_hi @F %N, @s zero.\n" msgstr "@i %i (%Q)的i_file_acl_hi为 %N,@s0。\n" #. @-expanded: problem in HTREE directory inode %d: root node fails checksum.\n -#: e2fsck/problem.c:1654 -#, c-format +#: e2fsck/problem.c:1735 +#, no-c-format msgid "@p @h %d: root node fails checksum.\n" msgstr "@p@h %d:根结点的校验值错误。\n" #. @-expanded: problem in HTREE directory inode %d: internal node fails checksum.\n -#: e2fsck/problem.c:1659 -#, c-format +#: e2fsck/problem.c:1741 +#, no-c-format msgid "@p @h %d: internal node fails checksum.\n" msgstr "@p@h %d:内部结点的校验值错误。\n" #. @-expanded: directory inode %i, %B, offset %N: directory has no checksum.\n -#: e2fsck/problem.c:1664 +#: e2fsck/problem.c:1746 msgid "@d @i %i, %B, offset %N: @d has no checksum.\n" msgstr "@d@i %i,%B,偏移量 %N:@d缺少校验值。\n" #. @-expanded: directory inode %i, %B: directory passes checks but fails checksum.\n -#: e2fsck/problem.c:1669 +#: e2fsck/problem.c:1751 msgid "@d @i %i, %B: @d passes checks but fails checksum.\n" msgstr "@d@i %i,%B:@d通过了检验,但校验值错误。\n" #. @-expanded: Inline directory inode %i size (%N) must be a multiple of 4.\n -#: e2fsck/problem.c:1674 +#: e2fsck/problem.c:1756 msgid "Inline @d @i %i size (%N) must be a multiple of 4.\n" msgstr "内联@d @i %i 的大小(%N)必须为4的整数倍。\n" #. @-expanded: Fixing size of inline directory inode %i failed.\n -#: e2fsck/problem.c:1679 -#, c-format +#: e2fsck/problem.c:1762 +#, no-c-format msgid "Fixing size of inline @d @i %i failed.\n" msgstr "修复内联@d @i %i 的大小失败。\n" #. @-expanded: Encrypted entry '%Dn' in %p (%i) is too short.\n -#: e2fsck/problem.c:1684 +#: e2fsck/problem.c:1767 msgid "Encrypted @E is too short.\n" msgstr "加密的@E太短。\n" #. @-expanded: Pass 3: Checking directory connectivity\n -#: e2fsck/problem.c:1691 +#: e2fsck/problem.c:1774 msgid "Pass 3: Checking @d connectivity\n" msgstr "第 3 步:检查目录连接性\n" #. @-expanded: root inode not allocated. -#: e2fsck/problem.c:1696 +#: e2fsck/problem.c:1779 msgid "@r not allocated. " msgstr "@r未被分配。 " #. @-expanded: No room in lost+found directory. -#: e2fsck/problem.c:1701 +#: e2fsck/problem.c:1784 msgid "No room in @l @d. " msgstr "@l@d中没有空间。 " #. @-expanded: Unconnected directory inode %i (%p)\n -#: e2fsck/problem.c:1706 -#, c-format +#: e2fsck/problem.c:1790 +#, no-c-format msgid "Unconnected @d @i %i (%p)\n" msgstr "未被连接的@d@i %i(%p)\n" #. @-expanded: /lost+found not found. -#: e2fsck/problem.c:1711 +#: e2fsck/problem.c:1795 msgid "/@l not found. " msgstr "/@l未找到。" #. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n -#: e2fsck/problem.c:1716 +#: e2fsck/problem.c:1800 msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n" msgstr "%Q(%i)中的“..”为 %P(%j),@s %q(%d)\n" #. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n -#: e2fsck/problem.c:1721 +#: e2fsck/problem.c:1806 +#, no-c-format msgid "Bad or non-existent /@l. Cannot reconnect.\n" msgstr "错误或不存在的/@l。无法重新连接。\n" #. @-expanded: Could not expand /lost+found: %m\n -#: e2fsck/problem.c:1726 -#, c-format +#: e2fsck/problem.c:1812 +#, no-c-format msgid "Could not expand /@l: %m\n" msgstr "无法扩充/@l:%m\n" -#: e2fsck/problem.c:1731 -#, c-format +#: e2fsck/problem.c:1818 +#, no-c-format msgid "Could not reconnect %i: %m\n" msgstr "无法重新连接%i:%m\n" #. @-expanded: Error while trying to find /lost+found: %m\n -#: e2fsck/problem.c:1736 -#, c-format +#: e2fsck/problem.c:1824 +#, no-c-format msgid "Error while trying to find /@l: %m\n" msgstr "尝试查找/@l时出错:%m\n" #. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n -#: e2fsck/problem.c:1741 -#, c-format +#: e2fsck/problem.c:1830 +#, no-c-format msgid "ext2fs_new_@b: %m while trying to create /@l @d\n" msgstr "ext2fs_new_block:尝试创建/@l@d时%m\n" #. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n -#: e2fsck/problem.c:1746 -#, c-format +#: e2fsck/problem.c:1836 +#, no-c-format msgid "ext2fs_new_@i: %m while trying to create /@l @d\n" msgstr "ext2fs_new_inode:尝试创建/@l@d时%m\n" #. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n -#: e2fsck/problem.c:1751 -#, c-format +#: e2fsck/problem.c:1842 +#, no-c-format msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n" msgstr "ext2fs_new_dir_block:创建新的@d@b时%m\n" #. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n -#: e2fsck/problem.c:1756 -#, c-format +#: e2fsck/problem.c:1848 +#, no-c-format msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n" msgstr "ext2fs_new_dir_block:为/@l创建新的@d@b时%m\n" #. @-expanded: Error while adjusting inode count on inode %i\n -#: e2fsck/problem.c:1761 -#, c-format +#: e2fsck/problem.c:1854 +#, no-c-format msgid "Error while adjusting @i count on @i %i\n" msgstr "调整@i %i的inode计数时出错\n" #. @-expanded: Couldn't fix parent of inode %i: %m\n #. @-expanded: \n -#: e2fsck/problem.c:1766 -#, c-format +#: e2fsck/problem.c:1860 +#, no-c-format msgid "" "Couldn't fix parent of @i %i: %m\n" "\n" @@ -2712,8 +2719,8 @@ msgstr "" #. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n #. @-expanded: \n -#: e2fsck/problem.c:1771 -#, c-format +#: e2fsck/problem.c:1866 +#, no-c-format msgid "" "Couldn't fix parent of @i %i: Couldn't find parent @d @e\n" "\n" @@ -2722,41 +2729,41 @@ msgstr "" "\n" #. @-expanded: Error creating root directory (%s): %m\n -#: e2fsck/problem.c:1781 -#, c-format +#: e2fsck/problem.c:1877 +#, no-c-format msgid "Error creating root @d (%s): %m\n" msgstr "创建根@d(%s)时出错:%m\n" #. @-expanded: Error creating /lost+found directory (%s): %m\n -#: e2fsck/problem.c:1786 -#, c-format +#: e2fsck/problem.c:1883 +#, no-c-format msgid "Error creating /@l @d (%s): %m\n" msgstr "创建/@l@d(%s)时出错:%m\n" #. @-expanded: root inode is not a directory; aborting.\n -#: e2fsck/problem.c:1791 +#: e2fsck/problem.c:1888 msgid "@r is not a @d; aborting.\n" msgstr "@r不是一个@d;已终止执行。\n" #. @-expanded: Cannot proceed without a root inode.\n -#: e2fsck/problem.c:1796 +#: e2fsck/problem.c:1893 msgid "Cannot proceed without a @r.\n" msgstr "无法在没有@r的情况下继续。\n" #. @-expanded: /lost+found is not a directory (ino=%i)\n -#: e2fsck/problem.c:1806 -#, c-format +#: e2fsck/problem.c:1904 +#, no-c-format msgid "/@l is not a @d (ino=%i)\n" msgstr "/@l 不是一个@d(ino=%i)\n" #. @-expanded: /lost+found has inline data\n -#: e2fsck/problem.c:1811 +#: e2fsck/problem.c:1909 msgid "/@l has inline data\n" msgstr "/@l 含有内联数据\n" #. @-expanded: Cannot allocate space for /lost+found.\n #. @-expanded: Place lost files in root directory instead -#: e2fsck/problem.c:1816 +#: e2fsck/problem.c:1914 msgid "" "Cannot allocate space for /@l.\n" "Place lost files in root directory instead" @@ -2767,7 +2774,7 @@ msgstr "" #. @-expanded: Insufficient space to recover lost files!\n #. @-expanded: Move data off the filesystem and re-run e2fsck.\n #. @-expanded: \n -#: e2fsck/problem.c:1821 +#: e2fsck/problem.c:1919 msgid "" "Insufficient space to recover lost files!\n" "Move data off the @f and re-run e2fsck.\n" @@ -2778,52 +2785,52 @@ msgstr "" "\n" #. @-expanded: /lost+found is encrypted\n -#: e2fsck/problem.c:1826 +#: e2fsck/problem.c:1924 msgid "/@l is encrypted\n" msgstr "/@l 已被加密\n" -#: e2fsck/problem.c:1833 +#: e2fsck/problem.c:1931 msgid "Pass 3A: Optimizing directories\n" msgstr "第 3A 步:优化目录\n" -#: e2fsck/problem.c:1838 -#, c-format +#: e2fsck/problem.c:1937 +#, no-c-format msgid "Failed to create dirs_to_hash iterator: %m\n" msgstr "创建dirs_to_hash迭代器出错:%m\n" -#: e2fsck/problem.c:1843 +#: e2fsck/problem.c:1942 msgid "Failed to optimize directory %q (%d): %m\n" msgstr "优化目录 %q(%d)失败:%m\n" -#: e2fsck/problem.c:1848 +#: e2fsck/problem.c:1947 msgid "Optimizing directories: " msgstr "优化目录: " -#: e2fsck/problem.c:1865 +#: e2fsck/problem.c:1964 msgid "Pass 4: Checking reference counts\n" msgstr "第 4 步:检查引用计数\n" #. @-expanded: unattached zero-length inode %i. -#: e2fsck/problem.c:1870 -#, c-format +#: e2fsck/problem.c:1970 +#, no-c-format msgid "@u @z @i %i. " msgstr "@u@z@i %i。 " #. @-expanded: unattached inode %i\n -#: e2fsck/problem.c:1875 -#, c-format +#: e2fsck/problem.c:1976 +#, no-c-format msgid "@u @i %i\n" msgstr "@u@i %i。 \n" #. @-expanded: inode %i ref count is %Il, should be %N. -#: e2fsck/problem.c:1880 +#: e2fsck/problem.c:1981 msgid "@i %i ref count is %Il, @s %N. " msgstr "@i %i 的引用计数为 %Il,@s %N。 " #. @-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 -#: e2fsck/problem.c:1884 +#: e2fsck/problem.c:1985 msgid "" "WARNING: PROGRAMMING BUG IN E2FSCK!\n" "\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n" @@ -2834,149 +2841,148 @@ msgstr "" "@i_link_info[%i] 为 %N,@i.i_links_count 为 %Il。它们应当相同!\n" #. @-expanded: extended attribute inode %i ref count is %N, should be %n. -#: e2fsck/problem.c:1891 +#: e2fsck/problem.c:1992 #, fuzzy +#| msgid "@i %i ref count is %Il, @s %N. " msgid "@a @i %i ref count is %N, @s %n. " msgstr "@i %i 的引用计数为 %Il,@s %N。 " #. @-expanded: directory exceeds max links, but no DIR_NLINK feature in superblock.\n -#: e2fsck/problem.c:1896 +#: e2fsck/problem.c:1997 msgid "@d exceeds max links, but no DIR_NLINK feature in @S.\n" msgstr "" #. @-expanded: Pass 5: Checking group summary information\n -#: e2fsck/problem.c:1903 +#: e2fsck/problem.c:2004 msgid "Pass 5: Checking @g summary information\n" msgstr "第 5 步:检查@g概要信息\n" #. @-expanded: Padding at end of inode bitmap is not set. -#: e2fsck/problem.c:1908 +#: e2fsck/problem.c:2009 msgid "Padding at end of @i @B is not set. " msgstr "@i@B末尾的填充值未设置。 " #. @-expanded: Padding at end of block bitmap is not set. -#: e2fsck/problem.c:1913 +#: e2fsck/problem.c:2014 msgid "Padding at end of @b @B is not set. " msgstr "@b@B末尾的填充值未设置。 " #. @-expanded: block bitmap differences: -#: e2fsck/problem.c:1918 +#: e2fsck/problem.c:2019 msgid "@b @B differences: " msgstr "@b@B的差异: " #. @-expanded: inode bitmap differences: -#: e2fsck/problem.c:1938 +#: e2fsck/problem.c:2041 msgid "@i @B differences: " msgstr "@i@B的差异: " #. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n -#: e2fsck/problem.c:1958 +#: e2fsck/problem.c:2063 msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n" msgstr "@g #%g的可用@i计数错误(%i,实际为%j)。\n" #. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n -#: e2fsck/problem.c:1963 +#: e2fsck/problem.c:2068 msgid "Directories count wrong for @g #%g (%i, counted=%j).\n" msgstr "@g #%g的目录计数错误(%i,实际为%j)\n" #. @-expanded: Free inodes count wrong (%i, counted=%j).\n -#: e2fsck/problem.c:1968 +#: e2fsck/problem.c:2073 msgid "Free @is count wrong (%i, counted=%j).\n" msgstr "可用@i数错误(%i,实际为%j)\n" #. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n -#: e2fsck/problem.c:1973 +#: e2fsck/problem.c:2078 msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n" msgstr "@g #%g的可用@b计数错误(%i,实际为%j)。\n" #. @-expanded: Free blocks count wrong (%b, counted=%c).\n -#: e2fsck/problem.c:1978 +#: e2fsck/problem.c:2083 msgid "Free @bs count wrong (%b, counted=%c).\n" msgstr "可用@b数错误(%i,实际为%j)\n" #. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap #. @-expanded: endpoints (%i, %j)\n -#: e2fsck/problem.c:1983 -msgid "" -"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B " -"endpoints (%i, %j)\n" +#: e2fsck/problem.c:2088 +msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n" msgstr "程序错误:@f(# %n)@B端点(%b,%c)与计算值(%i,%j)不符\n" -#: e2fsck/problem.c:1989 +#: e2fsck/problem.c:2094 msgid "Internal error: fudging end of bitmap (%N)\n" msgstr "内部错误:虚构的位图端点\n" #. @-expanded: Error copying in replacement inode bitmap: %m\n -#: e2fsck/problem.c:1994 -#, c-format +#: e2fsck/problem.c:2100 +#, no-c-format msgid "Error copying in replacement @i @B: %m\n" msgstr "替换@i@B时拷贝错误:%m\n" #. @-expanded: Error copying in replacement block bitmap: %m\n -#: e2fsck/problem.c:1999 -#, c-format +#: e2fsck/problem.c:2106 +#, no-c-format msgid "Error copying in replacement @b @B: %m\n" msgstr "替换@b@B时拷贝错误:%m\n" #. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n -#: e2fsck/problem.c:2024 -#, c-format +#: e2fsck/problem.c:2136 +#, no-c-format msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n" msgstr "@g %g @b已被使用,但@g被标记为BLOCK_UNINIT\n" #. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n -#: e2fsck/problem.c:2029 -#, c-format +#: e2fsck/problem.c:2142 +#, no-c-format msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n" msgstr "@g %g @i已被使用,但@g被标记为INODE_UNINIT\n" #. @-expanded: group %g inode bitmap does not match checksum.\n -#: e2fsck/problem.c:2034 -#, c-format +#: e2fsck/problem.c:2148 +#, no-c-format msgid "@g %g @i @B does not match checksum.\n" msgstr "@g %g @i @B 与自身校验值不符。\n" #. @-expanded: group %g block bitmap does not match checksum.\n -#: e2fsck/problem.c:2039 -#, c-format +#: e2fsck/problem.c:2154 +#, no-c-format msgid "@g %g @b @B does not match checksum.\n" msgstr "@g %g @b @B 与自身校验值不符。\n" #. @-expanded: Recreate journal -#: e2fsck/problem.c:2046 +#: e2fsck/problem.c:2161 msgid "Recreate @j" msgstr "重建@j" -#: e2fsck/problem.c:2051 +#: e2fsck/problem.c:2166 msgid "Update quota info for quota type %N" msgstr "更新配额类型 %N 的配额信息" #. @-expanded: Error setting block group checksum info: %m\n -#: e2fsck/problem.c:2056 -#, c-format +#: e2fsck/problem.c:2172 +#, no-c-format msgid "Error setting @b @g checksum info: %m\n" msgstr "设置@b@g的校验信息时出错:%m\n" -#: e2fsck/problem.c:2061 -#, c-format +#: e2fsck/problem.c:2178 +#, no-c-format msgid "Error writing file system info: %m\n" msgstr "写入文件系统信息时出错:%m\n" -#: e2fsck/problem.c:2066 -#, c-format +#: e2fsck/problem.c:2184 +#, no-c-format msgid "Error flushing writes to storage device: %m\n" msgstr "将缓冲写入到存储设备:%m\n" -#: e2fsck/problem.c:2071 +#: e2fsck/problem.c:2189 msgid "Error writing quota info for quota type %N: %m\n" msgstr "写入配额类型 %N 的配额信息时出错:%m\n" -#: e2fsck/problem.c:2194 +#: e2fsck/problem.c:2352 #, c-format msgid "Unhandled error code (0x%x)!\n" msgstr "未处理的错误码 (0x%x)!\n" -#: e2fsck/problem.c:2320 e2fsck/problem.c:2324 +#: e2fsck/problem.c:2482 e2fsck/problem.c:2486 msgid "IGNORED" msgstr "已忽略" @@ -3003,14 +3009,14 @@ msgid "while doing inode scan" msgstr "进行inode扫描时" #: e2fsck/super.c:224 -#, fuzzy, c-format +#, c-format msgid "while calling ext2fs_block_iterate for inode %u" -msgstr "为inode %d 调用ext2fs_block_iterate时" +msgstr "为 inode %u 调用 ext2fs_block_iterate 时" #: e2fsck/super.c:249 -#, fuzzy, c-format +#, c-format msgid "while calling ext2fs_adjust_ea_refcount2 for inode %u" -msgstr "为inode %d 调用ext2fs_adjust_ea_refcount2时" +msgstr "为 inode %u 调用 ext2fs_adjust_ea_refcount2 时" #: e2fsck/super.c:374 msgid "Truncating" @@ -3020,7 +3026,7 @@ msgstr "正在截断" msgid "Clearing" msgstr "正在清除" -#: e2fsck/unix.c:77 +#: e2fsck/unix.c:78 #, c-format msgid "" "Usage: %s [-panyrcdfktvDFV] [-b superblock] [-B blocksize]\n" @@ -3031,15 +3037,14 @@ msgstr "" "\t\t[-l|-L 坏块文件] [-C fd] [-j 外部日志]\n" "\t\t[-E 扩展选项] [-z 撤销文件] 设备\n" -#: e2fsck/unix.c:82 +#: e2fsck/unix.c:83 msgid "" "\n" "Emergency help:\n" " -p Automatic repair (no questions)\n" " -n Make no changes to the filesystem\n" " -y Assume \"yes\" to all questions\n" -" -c Check for bad blocks and add them to the badblock " -"list\n" +" -c Check for bad blocks and add them to the badblock list\n" " -f Force checking even if filesystem is marked clean\n" msgstr "" "\n" @@ -3050,7 +3055,7 @@ msgstr "" " -c 检查可能的坏块,并将它们加入坏块列表\n" " -f 强制进行检查,即使文件系统被标记为“没有问题”\n" -#: e2fsck/unix.c:88 +#: e2fsck/unix.c:89 msgid "" " -v Be verbose\n" " -b superblock Use alternative superblock\n" @@ -3068,12 +3073,12 @@ msgstr "" " -L bad_blocks_file 指定坏块列表(文件)\n" " -z undo_file 创建一个撤销文件\n" -#: e2fsck/unix.c:136 +#: e2fsck/unix.c:137 #, c-format msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n" msgstr "%s:%u/%u 文件(%0d.%d%% 为非连续的), %llu/%llu 块\n" -#: e2fsck/unix.c:162 +#: e2fsck/unix.c:163 #, c-format msgid "" "\n" @@ -3085,46 +3090,46 @@ msgstr[0] "" "\n" "%12u 个已使用的inode(%2.2f%%,总共 %u)\n" -#: e2fsck/unix.c:166 +#: e2fsck/unix.c:167 #, c-format msgid "%12u non-contiguous file (%0d.%d%%)\n" msgid_plural "%12u non-contiguous files (%0d.%d%%)\n" msgstr[0] "%12u 个不连续的文件(%0d.%d%%)\n" -#: e2fsck/unix.c:171 +#: e2fsck/unix.c:172 #, c-format msgid "%12u non-contiguous directory (%0d.%d%%)\n" msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n" msgstr[0] "%12u 个不连续的目录(%0d.%d%%)\n" -#: e2fsck/unix.c:176 +#: e2fsck/unix.c:177 #, c-format msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n" msgstr " # 一次/二次/三次链接块数:%u/%u/%u\n" -#: e2fsck/unix.c:184 +#: e2fsck/unix.c:185 msgid " Extent depth histogram: " msgstr " Extent深度直方图: " -#: e2fsck/unix.c:193 +#: e2fsck/unix.c:194 #, c-format msgid "%12llu block used (%2.2f%%, out of %llu)\n" msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n" msgstr[0] "%12llu 个已使用的块(%2.2f%%,总共 %llu)\n" -#: e2fsck/unix.c:197 +#: e2fsck/unix.c:198 #, c-format msgid "%12u bad block\n" msgid_plural "%12u bad blocks\n" msgstr[0] "%12u 个坏块\n" -#: e2fsck/unix.c:199 +#: e2fsck/unix.c:200 #, c-format msgid "%12u large file\n" msgid_plural "%12u large files\n" msgstr[0] "%12u 个大文件\n" -#: e2fsck/unix.c:201 +#: e2fsck/unix.c:202 #, c-format msgid "" "\n" @@ -3136,96 +3141,96 @@ msgstr[0] "" "\n" "%12u 个普通文件\n" -#: e2fsck/unix.c:203 +#: e2fsck/unix.c:204 #, c-format msgid "%12u directory\n" msgid_plural "%12u directories\n" msgstr[0] "%12u 个文件夹\n" -#: e2fsck/unix.c:205 +#: e2fsck/unix.c:206 #, c-format msgid "%12u character device file\n" msgid_plural "%12u character device files\n" msgstr[0] "%12u 个字符设备文件\n" -#: e2fsck/unix.c:208 +#: e2fsck/unix.c:209 #, c-format msgid "%12u block device file\n" msgid_plural "%12u block device files\n" msgstr[0] "%12u 个块设备文件\n" -#: e2fsck/unix.c:210 +#: e2fsck/unix.c:211 #, c-format msgid "%12u fifo\n" msgid_plural "%12u fifos\n" msgstr[0] "%12u 个队列文件\n" -#: e2fsck/unix.c:212 +#: e2fsck/unix.c:213 #, c-format msgid "%12u link\n" msgid_plural "%12u links\n" msgstr[0] "%12u 个链接\n" -#: e2fsck/unix.c:214 +#: e2fsck/unix.c:215 #, c-format msgid "%12u symbolic link" msgid_plural "%12u symbolic links" msgstr[0] "%12u 个符号链接" -#: e2fsck/unix.c:216 +#: e2fsck/unix.c:217 #, c-format msgid " (%u fast symbolic link)\n" msgid_plural " (%u fast symbolic links)\n" msgstr[0] " (%u 个直接符号链接)\n" -#: e2fsck/unix.c:220 +#: e2fsck/unix.c:221 #, c-format msgid "%12u socket\n" msgid_plural "%12u sockets\n" msgstr[0] "%12u 个套接字文件\n" -#: e2fsck/unix.c:224 +#: e2fsck/unix.c:225 #, c-format msgid "%12u file\n" msgid_plural "%12u files\n" msgstr[0] "%12u 个文件\n" -#: e2fsck/unix.c:237 misc/badblocks.c:1002 misc/tune2fs.c:3022 misc/util.c:126 +#: e2fsck/unix.c:238 misc/badblocks.c:1002 misc/tune2fs.c:2986 misc/util.c:129 #: resize/main.c:354 #, c-format msgid "while determining whether %s is mounted." msgstr "确定 %s 是否已挂载时" # Note:The second "%s" represents the current status of the device (defined by the first "%s"), thus it is not necessary to translate the word "is". The second "%s" will serve as the copula as well as the predicative (in Chinese). -#: e2fsck/unix.c:258 +#: e2fsck/unix.c:259 #, c-format msgid "Warning! %s is mounted.\n" msgstr "警告! %s已被挂载。\n" # Note:The second "%s" represents the current status of the device (defined by the first "%s"), thus it is not necessary to translate the word "is". The second "%s" will serve as the copula as well as the predicative (in Chinese). -#: e2fsck/unix.c:261 +#: e2fsck/unix.c:262 #, c-format msgid "Warning! %s is in use.\n" msgstr "警告! %s正被使用。\n" -#: e2fsck/unix.c:267 +#: e2fsck/unix.c:268 #, c-format msgid "%s is mounted.\n" msgstr "%s 已挂载。\n" # Same as the above. -#: e2fsck/unix.c:269 +#: e2fsck/unix.c:270 #, c-format msgid "%s is in use.\n" msgstr "%s正被使用。\n" -#: e2fsck/unix.c:271 +#: e2fsck/unix.c:272 msgid "" "Cannot continue, aborting.\n" "\n" msgstr "无法继续,已中止。\n" -#: e2fsck/unix.c:273 +#: e2fsck/unix.c:274 msgid "" "\n" "\n" @@ -3239,86 +3244,96 @@ msgstr "" "使文件系统遭受 *** 严重损坏 ***!\n" "\n" -#: e2fsck/unix.c:278 +#: e2fsck/unix.c:279 msgid "Do you really want to continue" msgstr "你真的想要继续吗" -#: e2fsck/unix.c:280 +#: e2fsck/unix.c:281 msgid "check aborted.\n" msgstr "检查被中止。\n" -#: e2fsck/unix.c:374 +#: e2fsck/unix.c:375 msgid " contains a file system with errors" msgstr " 有一个含有错误的文件系统" -#: e2fsck/unix.c:376 +#: e2fsck/unix.c:377 msgid " was not cleanly unmounted" msgstr " 未被彻底卸载" -#: e2fsck/unix.c:378 +#: e2fsck/unix.c:379 msgid " primary superblock features different from backup" msgstr " 主超级块与备份超级块有差异" -#: e2fsck/unix.c:382 +#: e2fsck/unix.c:383 #, c-format msgid " has been mounted %u times without being checked" msgstr " 已被挂载 %u 次,但尚未被检查" -#: e2fsck/unix.c:389 +#: e2fsck/unix.c:390 msgid " has filesystem last checked time in the future" msgstr " 上一次检查的时间在未来" -#: e2fsck/unix.c:395 +#: e2fsck/unix.c:396 #, c-format msgid " has gone %u days without being checked" msgstr " 已超过 %u 未被检查" -#: e2fsck/unix.c:403 +#: e2fsck/unix.c:404 msgid "ignoring check interval, broken_system_clock set\n" msgstr "" -#: e2fsck/unix.c:409 +#: e2fsck/unix.c:410 msgid ", check forced.\n" msgstr ",强制进行检查。\n" -#: e2fsck/unix.c:442 +#: e2fsck/unix.c:443 #, c-format msgid "%s: clean, %u/%u files, %llu/%llu blocks" msgstr "%s:没有问题,%u/%u 文件,%llu/%llu 块" -#: e2fsck/unix.c:462 +#: e2fsck/unix.c:463 msgid " (check deferred; on battery)" msgstr " (正在使用电池;已推迟检查)" -#: e2fsck/unix.c:465 +#: e2fsck/unix.c:466 msgid " (check after next mount)" msgstr "(将于下次挂载时进行检查)" -#: e2fsck/unix.c:467 +#: e2fsck/unix.c:468 #, c-format msgid " (check in %ld mounts)" msgstr " (每挂载 %ld 次就进行检查)" -#: e2fsck/unix.c:617 +#: e2fsck/unix.c:618 #, c-format msgid "ERROR: Couldn't open /dev/null (%s)\n" msgstr "错误:无法打开/dev/null(%s)\n" -#: e2fsck/unix.c:688 +#: e2fsck/unix.c:689 msgid "Invalid EA version.\n" msgstr "无效的EA版本号。\n" -#: e2fsck/unix.c:701 +#: e2fsck/unix.c:702 msgid "Invalid readahead buffer size.\n" msgstr "预读取缓冲区大小无效。\n" -#: e2fsck/unix.c:750 +#: e2fsck/unix.c:757 #, c-format msgid "Unknown extended option: %s\n" msgstr "未知的扩展属性:%s\n" -#: e2fsck/unix.c:758 +#: e2fsck/unix.c:765 #, fuzzy +#| msgid "" +#| "\n" +#| "Bad extended option(s) specified: %s\n" +#| "\n" +#| "Extended options are separated by commas, and may take an argument which\n" +#| "\tis set off by an equals ('=') sign.\n" +#| "\n" +#| "Valid extended options are:\n" +#| "\tsuperblock=<superblock number>\n" +#| "\tblocksize=<blocksize>\n" msgid "" "\n" "Extended options are separated by commas, and may take an argument which\n" @@ -3334,16 +3349,15 @@ msgstr "" "\tsuperblock=<超级块编号>\n" "\tblocksize=<块大小>\n" -#: e2fsck/unix.c:762 +#: e2fsck/unix.c:769 msgid "\tea_ver=<ea_version (1 or 2)>\n" -msgstr "" +msgstr "\tea_ver=<ea_version (1 或 2)>\n" -#: e2fsck/unix.c:771 -#, fuzzy +#: e2fsck/unix.c:778 msgid "\treadahead_kb=<buffer size>\n" -msgstr "预读取缓冲区大小无效。\n" +msgstr "\treadahead_kb=<缓冲大小>\n" -#: e2fsck/unix.c:783 +#: e2fsck/unix.c:790 #, c-format msgid "" "Syntax error in e2fsck config file (%s, line #%d)\n" @@ -3352,55 +3366,55 @@ msgstr "" "e2fsck 配置文件中语法错误(%s,第 %d 行)\n" "\t%s\n" -#: e2fsck/unix.c:856 +#: e2fsck/unix.c:863 #, c-format msgid "Error validating file descriptor %d: %s\n" msgstr "验证文件描述符 %d 时出错:%s\n" -#: e2fsck/unix.c:860 +#: e2fsck/unix.c:867 msgid "Invalid completion information file descriptor" msgstr "无效的文件描述符信息" -#: e2fsck/unix.c:875 +#: e2fsck/unix.c:882 msgid "Only one of the options -p/-a, -n or -y may be specified." msgstr "只能使用选项 -p/-a、-n 或 -y 其中之一。" -#: e2fsck/unix.c:896 +#: e2fsck/unix.c:903 #, c-format msgid "The -t option is not supported on this version of e2fsck.\n" msgstr "此版本的e2fsck不支持 -t 选项。\n" -#: e2fsck/unix.c:927 e2fsck/unix.c:1005 misc/e2initrd_helper.c:330 -#: misc/tune2fs.c:1741 misc/tune2fs.c:2036 misc/tune2fs.c:2054 +#: e2fsck/unix.c:934 e2fsck/unix.c:1012 misc/e2initrd_helper.c:330 +#: misc/tune2fs.c:1695 misc/tune2fs.c:1990 misc/tune2fs.c:2008 #, c-format msgid "Unable to resolve '%s'" msgstr "无法解析“%s”" -#: e2fsck/unix.c:984 +#: e2fsck/unix.c:991 msgid "The -n and -D options are incompatible." msgstr "%s:-n 和 -D 选项是互相排斥的。" -#: e2fsck/unix.c:989 +#: e2fsck/unix.c:996 msgid "The -n and -c options are incompatible." msgstr "%s:-n 和 -c 选项是互相排斥的。" -#: e2fsck/unix.c:994 +#: e2fsck/unix.c:1001 msgid "The -n and -l/-L options are incompatible." msgstr "%s:-n 和 -l/-L 选项是相互排斥的。" -#: e2fsck/unix.c:1018 +#: e2fsck/unix.c:1025 msgid "The -D and -E fixes_only options are incompatible." msgstr "-D 和 -E fixes_only 选项是互相排斥的。" -#: e2fsck/unix.c:1024 +#: e2fsck/unix.c:1031 msgid "The -E bmap2extent and fixes_only options are incompatible." msgstr "-E bmap2extent 和 fixes_only 选项是互相排斥的。" -#: e2fsck/unix.c:1088 +#: e2fsck/unix.c:1095 msgid "The -c and the -l/-L options may not be both used at the same time.\n" msgstr "-c 和 -l/-L 选项不能同时使用。\n" -#: e2fsck/unix.c:1135 +#: e2fsck/unix.c:1142 #, c-format msgid "" "E2FSCK_JBD_DEBUG \"%s\" not an integer\n" @@ -3409,7 +3423,7 @@ msgstr "" "E2FSCK_JBD_DEBUG “%s”不是整数\n" "\n" -#: e2fsck/unix.c:1144 +#: e2fsck/unix.c:1151 #, c-format msgid "" "\n" @@ -3420,33 +3434,31 @@ msgstr "" "-%c 接收到无效的非数值参数(“%s”)\n" "\n" -#: e2fsck/unix.c:1235 +#: e2fsck/unix.c:1242 #, c-format -msgid "" -"MMP interval is %u seconds and total wait time is %u seconds. Please " -"wait...\n" +msgid "MMP interval is %u seconds and total wait time is %u seconds. Please wait...\n" msgstr "MMP间隔为 %u 秒,总等候时间为 %u 秒。请稍候...\n" -#: e2fsck/unix.c:1252 e2fsck/unix.c:1257 +#: e2fsck/unix.c:1259 e2fsck/unix.c:1264 msgid "while checking MMP block" msgstr "检测 MMP 块时" -#: e2fsck/unix.c:1259 -#, fuzzy, c-format +#: e2fsck/unix.c:1266 +#, 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 "" -"如果你确定文件系统并没有挂载到任何节点上,请运行:\n" -"“tune2fs -f -E clear_mmp {设备}”\n" +"如果您确定文件系统并没有挂载到任何节点上,请运行:\n" +"“tune2fs -f -E clear_mmp %s”\n" -#: e2fsck/unix.c:1275 +#: e2fsck/unix.c:1282 msgid "while reading MMP block" msgstr "读取 MMP 块时" -#: e2fsck/unix.c:1295 e2fsck/unix.c:1347 misc/e2undo.c:236 misc/e2undo.c:281 -#: misc/mke2fs.c:2613 misc/mke2fs.c:2664 misc/tune2fs.c:2754 -#: misc/tune2fs.c:2799 resize/main.c:188 resize/main.c:233 +#: e2fsck/unix.c:1302 e2fsck/unix.c:1354 misc/e2undo.c:236 misc/e2undo.c:281 +#: misc/mke2fs.c:2696 misc/mke2fs.c:2747 misc/tune2fs.c:2713 +#: misc/tune2fs.c:2758 resize/main.c:188 resize/main.c:233 #, c-format msgid "" "Overwriting existing filesystem; this can be undone using the command:\n" @@ -3457,57 +3469,57 @@ msgstr "" " e2undo %s %s\n" "\n" -#: e2fsck/unix.c:1336 misc/e2undo.c:270 misc/mke2fs.c:2653 misc/tune2fs.c:2788 +#: e2fsck/unix.c:1343 misc/e2undo.c:270 misc/mke2fs.c:2736 misc/tune2fs.c:2747 #: resize/main.c:222 #, c-format msgid "while trying to delete %s" msgstr "尝试删除 %s 时" -#: e2fsck/unix.c:1362 misc/mke2fs.c:2679 resize/main.c:243 +#: e2fsck/unix.c:1369 misc/mke2fs.c:2762 resize/main.c:243 msgid "while trying to setup undo file\n" msgstr "尝试创建撤销记录时\n" -#: e2fsck/unix.c:1405 +#: e2fsck/unix.c:1412 msgid "Error: ext2fs library version out of date!\n" msgstr "错误:ext2fs库版本过旧!\n" -#: e2fsck/unix.c:1412 +#: e2fsck/unix.c:1419 msgid "while trying to initialize program" msgstr "尝试初始化程序时" -#: e2fsck/unix.c:1435 +#: e2fsck/unix.c:1456 #, c-format msgid "\tUsing %s, %s\n" msgstr "\t使用 %s,%s\n" -#: e2fsck/unix.c:1447 +#: e2fsck/unix.c:1468 msgid "need terminal for interactive repairs" msgstr "需要在终端中进行交互式修复" -#: e2fsck/unix.c:1508 +#: e2fsck/unix.c:1529 #, c-format msgid "%s: %s trying backup blocks...\n" msgstr "%s:%s 尝试备份块\n" -#: e2fsck/unix.c:1510 +#: e2fsck/unix.c:1531 msgid "Superblock invalid," msgstr "超级块无效," -#: e2fsck/unix.c:1511 +#: e2fsck/unix.c:1532 msgid "Group descriptors look bad..." msgstr "组描述符似乎是错误的..." -#: e2fsck/unix.c:1521 +#: e2fsck/unix.c:1542 #, c-format msgid "%s: %s while using the backup blocks" msgstr "%s:尝试备份块时 %s" -#: e2fsck/unix.c:1525 +#: e2fsck/unix.c:1546 #, c-format msgid "%s: going back to original superblock\n" msgstr "%s:回到原先的超级块\n" -#: e2fsck/unix.c:1554 +#: e2fsck/unix.c:1575 msgid "" "The filesystem revision is apparently too high for this version of e2fsck.\n" "(Or the filesystem superblock is corrupt)\n" @@ -3517,105 +3529,108 @@ msgstr "" "(也有可能超级块已损坏)\n" "\n" -#: e2fsck/unix.c:1561 +#: e2fsck/unix.c:1582 msgid "Could this be a zero-length partition?\n" msgstr "分区长度为零吗?\n" -#: e2fsck/unix.c:1563 +#: e2fsck/unix.c:1584 #, c-format msgid "You must have %s access to the filesystem or be root\n" msgstr "你必须具有对该文件系统的 %s 权限,或者为root\n" -#: e2fsck/unix.c:1569 +#: e2fsck/unix.c:1590 msgid "Possibly non-existent or swap device?\n" msgstr "" "可能为swap分区,或该设备不存在?\n" "\n" -#: e2fsck/unix.c:1571 +#: e2fsck/unix.c:1592 msgid "Filesystem mounted or opened exclusively by another program?\n" msgstr "文件系统可能已挂载,或正被其他程序独占使用?\n" -#: e2fsck/unix.c:1575 +#: e2fsck/unix.c:1596 msgid "Possibly non-existent device?\n" msgstr "可能该设备不存在?\n" -#: e2fsck/unix.c:1578 +#: e2fsck/unix.c:1599 msgid "" "Disk write-protected; use the -n option to do a read-only\n" "check of the device.\n" msgstr "磁盘写保护;请使用 -n 选项进行只读检查。\n" -#: e2fsck/unix.c:1592 +#: e2fsck/unix.c:1613 #, c-format msgid "%s: Trying to load superblock despite errors...\n" -msgstr "" +msgstr "%s:尽管有错误,仍然尝试读取超级块...\n" -#: e2fsck/unix.c:1667 +#: e2fsck/unix.c:1688 msgid "Get a newer version of e2fsck!" msgstr "请获取新版本的e2fsck!" -#: e2fsck/unix.c:1711 +#: e2fsck/unix.c:1749 #, c-format msgid "while checking journal for %s" msgstr "检查 %s 的日志时" -#: e2fsck/unix.c:1714 +#: e2fsck/unix.c:1752 msgid "Cannot proceed with file system check" msgstr "无法在系统检查时进行" -#: e2fsck/unix.c:1725 -msgid "" -"Warning: skipping journal recovery because doing a read-only filesystem " -"check.\n" +#: e2fsck/unix.c:1763 +msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n" msgstr "警告:由于只读系统检查,跳过日志恢复流程。\n" -#: e2fsck/unix.c:1737 +#: e2fsck/unix.c:1775 #, c-format msgid "unable to set superblock flags on %s\n" msgstr "" "无法设置 %s 的超级块标志。\n" "\n" -#: e2fsck/unix.c:1743 +#: e2fsck/unix.c:1781 #, c-format msgid "Journal checksum error found in %s\n" msgstr "在 %s 中发现日志校验值错误\n" -#: e2fsck/unix.c:1747 +#: e2fsck/unix.c:1785 #, c-format msgid "Journal corrupted in %s\n" msgstr "%s 中的日志已损坏\n" -#: e2fsck/unix.c:1751 +#: e2fsck/unix.c:1789 #, c-format msgid "while recovering journal of %s" msgstr "恢复 %s 的日志时" -#: e2fsck/unix.c:1773 +#: e2fsck/unix.c:1811 #, c-format msgid "%s has unsupported feature(s):" msgstr "%s 有不被支持的特性:" -#: e2fsck/unix.c:1832 +#: e2fsck/unix.c:1826 +#, c-format +msgid "%s has unsupported encoding: %0x\n" +msgstr "%s 有不被支持的编码:%0x\n" + +#: e2fsck/unix.c:1876 #, c-format msgid "%s: %s while reading bad blocks inode\n" msgstr "%s:读取坏块inode时%s\n" -#: e2fsck/unix.c:1835 +#: e2fsck/unix.c:1879 msgid "This doesn't bode well, but we'll try to go on...\n" msgstr "这并不是一个好预兆,然而我们将继续进行...\n" -#: e2fsck/unix.c:1875 +#: e2fsck/unix.c:1919 #, c-format msgid "Creating journal (%d blocks): " msgstr "创建日志(%d 个块):" -#: e2fsck/unix.c:1885 +#: e2fsck/unix.c:1929 msgid " Done.\n" msgstr "完毕。\n" -#: e2fsck/unix.c:1887 +#: e2fsck/unix.c:1931 msgid "" "\n" "*** journal has been regenerated ***\n" @@ -3623,38 +3638,38 @@ msgstr "" "\n" "*** 日志已被重建 ***\n" -#: e2fsck/unix.c:1893 +#: e2fsck/unix.c:1937 msgid "aborted" msgstr "已中止" -#: e2fsck/unix.c:1895 +#: e2fsck/unix.c:1939 #, c-format msgid "%s: e2fsck canceled.\n" msgstr "%s:e2fsck被取消。\n" -#: e2fsck/unix.c:1922 +#: e2fsck/unix.c:1966 msgid "Restarting e2fsck from the beginning...\n" msgstr "正在从头开始e2fsck...\n" -#: e2fsck/unix.c:1926 +#: e2fsck/unix.c:1970 msgid "while resetting context" msgstr "重置上下文时" -#: e2fsck/unix.c:1985 -#, fuzzy, c-format +#: e2fsck/unix.c:2029 +#, c-format msgid "" "\n" "%s: ***** FILE SYSTEM ERRORS CORRECTED *****\n" msgstr "" "\n" -"%s:***** 文件系统已修改 *****\n" +"%s:***** 文件系统错误已修正 *****\n" -#: e2fsck/unix.c:1987 -#, fuzzy, c-format +#: e2fsck/unix.c:2031 +#, c-format msgid "%s: File system was modified.\n" -msgstr "文件系统已损坏" +msgstr "%s:文件系统已被修改。\n" -#: e2fsck/unix.c:1991 e2fsck/util.c:71 +#: e2fsck/unix.c:2035 e2fsck/util.c:71 #, c-format msgid "" "\n" @@ -3663,12 +3678,12 @@ msgstr "" "\n" "%s:***** 文件系统已修改 *****\n" -#: e2fsck/unix.c:1996 +#: e2fsck/unix.c:2040 #, c-format msgid "%s: ***** REBOOT SYSTEM *****\n" msgstr "%s:***** 请重新启动系统 *****\n" -#: e2fsck/unix.c:2006 e2fsck/util.c:77 +#: e2fsck/unix.c:2050 e2fsck/util.c:77 #, c-format msgid "" "\n" @@ -3683,7 +3698,7 @@ msgstr "" msgid "yY" msgstr "yY" -#: e2fsck/util.c:197 +#: e2fsck/util.c:197 misc/util.c:112 msgid "nN" msgstr "nN" @@ -3816,9 +3831,7 @@ msgid "while writing inode %lu in %s" msgstr "写入 %2$s 中的inode %1$lu 时" #: e2fsck/util.c:792 -msgid "" -"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is " -"running.\n" +msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n" msgstr "未预期的不连续性:文件系统在运行fsck时被修改。\n" #: misc/badblocks.c:75 @@ -3826,15 +3839,14 @@ msgid "done \n" msgstr "已完成 \n" #: misc/badblocks.c:100 -#, fuzzy, c-format +#, c-format msgid "" "Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnfBX]\n" -" [-c blocks_at_once] [-d delay_factor_between_reads] [-e " -"max_bad_blocks]\n" +" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n" " [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n" " device [last_block [first_block]]\n" msgstr "" -"用法:%s [-b 块大小] [-i 输入文件] [-o 输出文件] [-svwnf]\n" +"用法:%s [-b 块大小] [-i 输入文件] [-o 输出文件] [-svwnfBX]\n" " [-c 立即块数] [-d 读取延迟因子] [-e 最大坏块数]\n" " [-p 需要通过测试的块数] [-t 测试模式 [-t 测试模式 [...]]]\n" " 设备 [末块 [首块]]\n" @@ -3935,7 +3947,7 @@ msgstr "" msgid "during test data write, block %lu" msgstr "正在测试数据写入,位于块 %lu" -#: misc/badblocks.c:1007 misc/util.c:131 +#: misc/badblocks.c:1007 misc/util.c:134 #, c-format msgid "%s is mounted; " msgstr "%s 已经挂载; " @@ -3948,7 +3960,7 @@ msgstr "强制进行坏块处理。期望/etc/mtab中反映的并非真实情况 msgid "it's not safe to run badblocks!\n" msgstr "进行坏块处理有风险!\n" -#: misc/badblocks.c:1019 misc/util.c:142 +#: misc/badblocks.c:1019 misc/util.c:145 #, c-format msgid "%s is apparently in use by the system; " msgstr "%s 显然正被系统使用; " @@ -4027,230 +4039,227 @@ msgstr "此步已完成,发现了 %u 个坏块。(%d/%d/%d 个错误)\n" #: misc/chattr.c:89 #, c-format -msgid "Usage: %s [-pRVf] [-+=aAcCdDeijPsStTu] [-v version] files...\n" -msgstr "用法:%s [-pRVf] [-+=aAcCdDeijPsStTu] [-v 版本] 文件...\n" +msgid "Usage: %s [-pRVf] [-+=aAcCdDeijPsStTuF] [-v version] files...\n" +msgstr "用法:%s [-pRVf] [-+=aAcCdDeijPsStTuF] [-v 版本] 文件...\n" -#: misc/chattr.c:159 +#: misc/chattr.c:160 #, c-format msgid "bad project - %s\n" msgstr "项目错误 - %s\n" -#: misc/chattr.c:173 +#: misc/chattr.c:174 #, c-format msgid "bad version - %s\n" msgstr "版本错误 - %s\n" -#: misc/chattr.c:219 misc/lsattr.c:127 +#: misc/chattr.c:220 misc/lsattr.c:127 #, c-format msgid "while trying to stat %s" msgstr "尝试对%s进行stat调用时" -#: misc/chattr.c:226 +#: misc/chattr.c:227 #, c-format msgid "while reading flags on %s" msgstr "读取 %s 的标志时" -#: misc/chattr.c:231 misc/chattr.c:243 +#: misc/chattr.c:232 misc/chattr.c:244 #, c-format msgid "Flags of %s set as " msgstr "%s的标志被设为 " -#: misc/chattr.c:252 +#: misc/chattr.c:253 #, c-format msgid "while setting flags on %s" msgstr "设置 %s 的标志时" -#: misc/chattr.c:260 +#: misc/chattr.c:261 #, c-format msgid "Version of %s set as %lu\n" msgstr "%s 的版本被设置为 %lu\n" -#: misc/chattr.c:264 +#: misc/chattr.c:265 #, c-format msgid "while setting version on %s" msgstr "设置 %s 的版本时" -#: misc/chattr.c:271 +#: misc/chattr.c:272 #, c-format msgid "Project of %s set as %lu\n" msgstr "%s 的项目被设置为 %lu\n" -#: misc/chattr.c:275 +#: misc/chattr.c:276 #, c-format msgid "while setting project on %s" msgstr "设置 %s 的项目时" -#: misc/chattr.c:297 +#: misc/chattr.c:298 msgid "Couldn't allocate path variable in chattr_dir_proc" msgstr "无法在chattr_dir_proc中为路径变量分配内存" -#: misc/chattr.c:337 +#: misc/chattr.c:338 msgid "= is incompatible with - and +\n" msgstr "= 与 - / + 选项不相容\n" -#: misc/chattr.c:345 +#: misc/chattr.c:346 msgid "Must use '-v', =, - or +\n" msgstr "必须使用“-v”、=、- 或 + 其中之一\n" -#: misc/create_inode.c:79 misc/create_inode.c:118 +#: misc/create_inode.c:80 misc/create_inode.c:119 #, c-format msgid "while reading inode %u" msgstr "读取 inode %u 时" -#: misc/create_inode.c:89 misc/create_inode.c:287 misc/create_inode.c:352 -#: misc/create_inode.c:390 +#: misc/create_inode.c:90 misc/create_inode.c:288 misc/create_inode.c:353 +#: misc/create_inode.c:391 msgid "while expanding directory" msgstr "扩充目录时" -#: misc/create_inode.c:96 +#: misc/create_inode.c:97 #, c-format msgid "while linking \"%s\"" msgstr "链接“%s”时" -#: misc/create_inode.c:104 misc/create_inode.c:131 misc/create_inode.c:321 +#: misc/create_inode.c:105 misc/create_inode.c:132 misc/create_inode.c:322 #, c-format msgid "while writing inode %u" msgstr "写入 inode %u 时" -#: misc/create_inode.c:151 misc/create_inode.c:175 +#: misc/create_inode.c:152 misc/create_inode.c:176 #, c-format msgid "while listing attributes of \"%s\"" msgstr "尝试列出“%s”的属性时" -#: misc/create_inode.c:162 +#: misc/create_inode.c:163 #, c-format msgid "while opening inode %u" msgstr "打开 inode %u 时" -#: misc/create_inode.c:168 misc/create_inode.c:195 misc/create_inode.c:975 +#: misc/create_inode.c:169 misc/create_inode.c:196 misc/create_inode.c:1043 #: misc/e2undo.c:182 misc/e2undo.c:479 misc/e2undo.c:485 misc/e2undo.c:491 #: misc/mke2fs.c:359 msgid "while allocating memory" msgstr "分配内存时" -#: misc/create_inode.c:188 misc/create_inode.c:204 +#: misc/create_inode.c:189 misc/create_inode.c:205 #, c-format msgid "while reading attribute \"%s\" of \"%s\"" msgstr "读取 %s 的“%s”标志时" -#: misc/create_inode.c:213 +#: misc/create_inode.c:214 #, c-format msgid "while writing attribute \"%s\" to inode %u" msgstr "写入标志“%s”到 inode %u 时" -#: misc/create_inode.c:223 +#: misc/create_inode.c:224 #, c-format msgid "while closing inode %u" msgstr "关闭 inode %u 时" -#: misc/create_inode.c:274 +#: misc/create_inode.c:275 #, c-format msgid "while allocating inode \"%s\"" msgstr "分配 inode“%s”时" -#: misc/create_inode.c:293 +#: misc/create_inode.c:294 #, c-format msgid "while creating inode \"%s\"" msgstr "创建 inode “%s”时" -#: misc/create_inode.c:359 +#: misc/create_inode.c:360 #, c-format msgid "while creating symlink \"%s\"" msgstr "创建符号链接“%s”时" -#: misc/create_inode.c:377 misc/create_inode.c:896 +#: misc/create_inode.c:378 misc/create_inode.c:963 #, c-format msgid "while looking up \"%s\"" msgstr "查找“%s”时" -#: misc/create_inode.c:397 +#: misc/create_inode.c:398 #, c-format msgid "while creating directory \"%s\"" msgstr "创建目录“%s”时" -#: misc/create_inode.c:625 +#: misc/create_inode.c:627 #, c-format msgid "while opening \"%s\" to copy" msgstr "打开“%s”并拷贝时" -#: misc/create_inode.c:739 +#: misc/create_inode.c:805 #, c-format msgid "while changing working directory to \"%s\"" msgstr "改变工作目录为“%s”时" -#: misc/create_inode.c:747 +#: misc/create_inode.c:815 #, c-format -msgid "while opening directory \"%s\"" -msgstr "打开目录“%s”时" +msgid "while scanning directory \"%s\"" +msgstr "扫描目录“%s”时" -#: misc/create_inode.c:757 +#: misc/create_inode.c:825 #, c-format msgid "while lstat \"%s\"" msgstr "对“%s”进行lstat调用时" -#: misc/create_inode.c:808 +#: misc/create_inode.c:875 #, c-format msgid "while creating special file \"%s\"" msgstr "创建特殊文件“%s”时" -#: misc/create_inode.c:817 +#: misc/create_inode.c:884 msgid "malloc failed" msgstr "内存分配失败" -#: misc/create_inode.c:825 +#: misc/create_inode.c:892 #, c-format msgid "while trying to read link \"%s\"" msgstr "尝试读取链接“%s”时" -#: misc/create_inode.c:832 +#: misc/create_inode.c:899 msgid "symlink increased in size between lstat() and readlink()" msgstr "在执行 lstat() 和 readlink() 期间,符号链接的大小发生改变" -#: misc/create_inode.c:843 +#: misc/create_inode.c:910 #, c-format msgid "while writing symlink\"%s\"" msgstr "写入符号链接“%s”时" -#: misc/create_inode.c:854 +#: misc/create_inode.c:921 #, c-format msgid "while writing file \"%s\"" msgstr "写入文件“%s”时" -#: misc/create_inode.c:867 +#: misc/create_inode.c:934 #, c-format msgid "while making dir \"%s\"" msgstr "创建目录“%s”时" -#: misc/create_inode.c:885 +#: misc/create_inode.c:952 msgid "while changing directory" msgstr "改变目录时" -#: misc/create_inode.c:891 +#: misc/create_inode.c:958 #, c-format msgid "ignoring entry \"%s\"" msgstr "忽略项“%s”" -#: misc/create_inode.c:904 +#: misc/create_inode.c:971 #, c-format msgid "while setting inode for \"%s\"" msgstr "为“%s”设置 inode 时" -#: misc/create_inode.c:911 +#: misc/create_inode.c:978 #, c-format msgid "while setting xattrs for \"%s\"" msgstr "设置“%s”的 xattrs 时" -#: misc/create_inode.c:937 +#: misc/create_inode.c:1004 msgid "while saving inode data" msgstr "保存 inode 数据时" #: misc/dumpe2fs.c:56 -#, fuzzy, c-format -msgid "" -"Usage: %s [-bfghimxV] [-o superblock=<num>] [-o blocksize=<num>] device\n" -msgstr "" -"用法:%s [-bfghixV] [-o superblock=<超级块编号>] [-o blocksize=<块大小>] 设" -"备\n" +#, c-format +msgid "Usage: %s [-bfghimxV] [-o superblock=<num>] [-o blocksize=<num>] device\n" +msgstr "用法:%s [-bfghimxV] [-o superblock=<超级块编号>] [-o blocksize=<块大小>] 设备\n" #: misc/dumpe2fs.c:159 msgid "blocks" @@ -4368,7 +4377,7 @@ msgstr "输出坏块列表时" msgid "Bad blocks: %u" msgstr "坏块数:%u" -#: misc/dumpe2fs.c:373 misc/tune2fs.c:367 +#: misc/dumpe2fs.c:373 misc/tune2fs.c:373 msgid "while reading journal inode" msgstr "读取日志inode时" @@ -4393,16 +4402,16 @@ msgid "Couldn't find journal superblock magic numbers" msgstr "无法找到日志超级块的幻数" #: misc/dumpe2fs.c:468 -#, fuzzy msgid "failed to alloc MMP buffer\n" -msgstr "为缓冲区分配内存时" +msgstr "分配 MMP 缓冲失败\n" #: misc/dumpe2fs.c:479 #, fuzzy, c-format +#| msgid "Checking blocks %lu to %lu\n" msgid "reading MMP block %llu from '%s'\n" msgstr "正在检查从 %lu 到 %lu的块\n" -#: misc/dumpe2fs.c:507 misc/mke2fs.c:798 misc/tune2fs.c:2073 +#: misc/dumpe2fs.c:507 misc/mke2fs.c:800 misc/tune2fs.c:2027 msgid "Couldn't allocate memory to parse options!\n" msgstr "无法为解析选项获取内存!\n" @@ -4438,12 +4447,12 @@ msgstr "" "\tsuperblock=<超级块编号>\n" "\tblocksize=<块大小>\n" -#: misc/dumpe2fs.c:649 misc/mke2fs.c:1845 +#: misc/dumpe2fs.c:649 misc/mke2fs.c:1889 #, c-format msgid "\tUsing %s\n" msgstr "\t使用 %s\n" -#: misc/dumpe2fs.c:694 misc/e2image.c:1590 misc/tune2fs.c:2949 +#: misc/dumpe2fs.c:694 misc/e2image.c:1629 misc/tune2fs.c:2913 #: resize/main.c:416 msgid "Couldn't find valid filesystem superblock.\n" msgstr "找不到有效的文件系统超级块。\n" @@ -4451,210 +4460,208 @@ msgstr "找不到有效的文件系统超级块。\n" #: misc/dumpe2fs.c:716 #, c-format msgid "%s: MMP feature not enabled.\n" -msgstr "" +msgstr "%s: MMP 特性未启用。\n" #: misc/dumpe2fs.c:747 -#, fuzzy, c-format +#, c-format msgid "while trying to read '%s' bitmaps\n" -msgstr "重新尝试读取 %s 的位图时" +msgstr "尝试读取“%s”位图时\n" #: misc/dumpe2fs.c:756 msgid "" "*** Run e2fsck now!\n" "\n" msgstr "" +"*** 请立刻运行 e2fsck!\n" +"\n" #: misc/e2image.c:107 -#, fuzzy, c-format -msgid "Usage: %s [ -r|Q ] [ -f ] device image-file\n" -msgstr "用法:%s [ -r|Q ] [ -fr ] 设备 镜像文件\n" +#, c-format +msgid "Usage: %s [ -r|Q ] [ -f ] [ -b superblock ] [ -B blocksize][ -fr ] device image-file\n" +msgstr "用法:%s [ -r|Q ] [ -f ] [ -b 超级块 ] [ -B 块大小][ -fr ] 设备 镜像文件\n" -#: misc/e2image.c:109 +#: misc/e2image.c:110 #, c-format msgid " %s -I device image-file\n" msgstr " %s -I 设备 镜像文件\n" -#: misc/e2image.c:110 +#: misc/e2image.c:111 #, c-format -msgid "" -" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs " -"[ dest_fs ]\n" -msgstr "" -" %s -ra [ -cfnp ] [ -o 源偏移量 ] [ -O 目标偏移量 ] 源文件系统 [ 目" -"标文件系统 ]\n" +msgid " %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs [ dest_fs ]\n" +msgstr " %s -ra [ -cfnp ] [ -o 源偏移量 ] [ -O 目标偏移量 ] 源文件系统 [ 目标文件系统 ]\n" -#: misc/e2image.c:175 misc/e2image.c:580 misc/e2image.c:586 misc/e2image.c:1185 +#: misc/e2image.c:176 misc/e2image.c:589 misc/e2image.c:595 +#: misc/e2image.c:1194 msgid "while allocating buffer" msgstr "为缓冲区分配内存时" -#: misc/e2image.c:180 +#: misc/e2image.c:181 #, c-format msgid "Writing block %llu\n" msgstr "正在写入到块 %llu\n" -#: misc/e2image.c:194 +#: misc/e2image.c:195 #, c-format msgid "error writing block %llu" msgstr "写块 %llu 出错" -#: misc/e2image.c:197 +#: misc/e2image.c:198 msgid "error in generic_write()" msgstr "generic_write() 函数出错" -#: misc/e2image.c:214 +#: misc/e2image.c:215 msgid "Error: header size is bigger than wrt_size\n" msgstr "错误:头部大小超过wrt_size\n" -#: misc/e2image.c:219 +#: misc/e2image.c:220 msgid "Couldn't allocate header buffer\n" msgstr "无法为头缓冲区分配内存\n" -#: misc/e2image.c:247 +#: misc/e2image.c:248 msgid "while writing superblock" msgstr "写入超级块时" -#: misc/e2image.c:256 +#: misc/e2image.c:257 msgid "while writing inode table" msgstr "写入inode表时" -#: misc/e2image.c:264 +#: misc/e2image.c:265 msgid "while writing block bitmap" msgstr "写入块位图时" -#: misc/e2image.c:272 +#: misc/e2image.c:273 msgid "while writing inode bitmap" msgstr "写入inode位图时" -#: misc/e2image.c:506 +#: misc/e2image.c:515 #, c-format msgid "Corrupt directory block %llu: bad rec_len (%d)\n" msgstr "损坏的目录块 %llu:rec_len(%d)错误\n" -#: misc/e2image.c:518 +#: misc/e2image.c:527 #, c-format msgid "Corrupt directory block %llu: bad name_len (%d)\n" msgstr "损坏的目录块 %llu:name_len(%d)错误\n" -#: misc/e2image.c:559 +#: misc/e2image.c:568 #, c-format msgid "%llu / %llu blocks (%d%%)" msgstr "%llu / %llu 块(%d%%)" -#: misc/e2image.c:590 misc/e2image.c:630 +#: misc/e2image.c:599 misc/e2image.c:639 msgid "Copying " msgstr "正在拷贝 " -#: misc/e2image.c:627 -msgid "" -"Stopping now will destroy the filesystem, interrupt again if you are sure\n" +#: misc/e2image.c:636 +msgid "Stopping now will destroy the filesystem, interrupt again if you are sure\n" msgstr "现在终止将会损坏文件系统;如果你确定要终止,请再次进行打断\n" -#: misc/e2image.c:653 +#: misc/e2image.c:662 #, c-format msgid " %s remaining at %.2f MB/s" msgstr " 剩余 %s,速度 %.2f MB/s" -#: misc/e2image.c:665 misc/e2image.c:1195 +#: misc/e2image.c:674 misc/e2image.c:1204 #, c-format msgid "error reading block %llu" msgstr "读取块 %llu 错误" -#: misc/e2image.c:719 +#: misc/e2image.c:728 #, c-format msgid "Copied %llu / %llu blocks (%d%%) in %s " msgstr "已复制 %llu / %llu 块(%d%%),用时 %s " -#: misc/e2image.c:723 +#: misc/e2image.c:732 #, c-format msgid "at %.2f MB/s" msgstr "速度 %.2f MB/s" -#: misc/e2image.c:759 +#: misc/e2image.c:768 msgid "while allocating l1 table" msgstr "分配l1表时" -#: misc/e2image.c:804 +#: misc/e2image.c:813 msgid "while allocating l2 cache" msgstr "分配l2表时" -#: misc/e2image.c:827 -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 "" -"警告:当put缓存时,这些表仍然储存在缓存中,这将导致数据丢失,镜像文件也可能无" -"效。\n" +#: misc/e2image.c:836 +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 "警告:当put缓存时,这些表仍然储存在缓存中,这将导致数据丢失,镜像文件也可能无效。\n" -#: misc/e2image.c:1152 +#: misc/e2image.c:1161 msgid "while allocating ext2_qcow2_image" msgstr "为ext2_qcow2_image分配内存时" -#: misc/e2image.c:1159 +#: misc/e2image.c:1168 msgid "while initializing ext2_qcow2_image" msgstr "初始化ext2_qcow2_image时" -#: misc/e2image.c:1218 misc/e2image.c:1236 +#: misc/e2image.c:1227 misc/e2image.c:1245 msgid "Programming error: multiple sequential refcount blocks created!\n" msgstr "程序错误:创建了多重序列的引用计数块!\n" -#: misc/e2image.c:1276 +#: misc/e2image.c:1286 msgid "while allocating block bitmap" msgstr "写入块位图时" -#: misc/e2image.c:1285 +#: misc/e2image.c:1295 msgid "while allocating scramble block bitmap" msgstr "写入加扰块位图时" -#: misc/e2image.c:1292 +#: misc/e2image.c:1318 msgid "Scanning inodes...\n" msgstr "扫描inode中...\n" -#: misc/e2image.c:1304 +#: misc/e2image.c:1330 msgid "Can't allocate block buffer" msgstr "无法为块缓存分配内存" -#: misc/e2image.c:1343 misc/e2image.c:1357 +#: misc/e2image.c:1369 misc/e2image.c:1383 #, c-format msgid "while iterating over inode %u" msgstr "获取遍历inode %u 时" -#: misc/e2image.c:1389 +#: misc/e2image.c:1415 msgid "Raw and qcow2 images cannot be installed" msgstr "原始镜像和qcow2镜像无法被安装" -#: misc/e2image.c:1411 +#: misc/e2image.c:1437 msgid "error reading bitmaps" msgstr "读取位图时发生错误" -#: misc/e2image.c:1423 +#: misc/e2image.c:1449 msgid "while opening device file" msgstr "打开设备文件时" -#: misc/e2image.c:1434 +#: misc/e2image.c:1460 msgid "while restoring the image table" msgstr "存储镜像表时" -#: misc/e2image.c:1531 +#: misc/e2image.c:1565 msgid "-a option can only be used with raw or QCOW2 images." -msgstr "-a 选项只能用于原始或qcow2镜像" +msgstr "-a 选项只能用于原始或 QCOW2 镜像。" + +#: misc/e2image.c:1570 +msgid "-b option can only be used with raw or QCOW2 images." +msgstr "-b 选项只能用于原始或 QCOW2 镜像。" -#: misc/e2image.c:1537 +#: misc/e2image.c:1576 msgid "Offsets are only allowed with raw images." msgstr "偏移量只能用于原始镜像" -#: misc/e2image.c:1542 +#: misc/e2image.c:1581 msgid "Move mode is only allowed with raw images." msgstr "移动模式只能用于原始镜像" -#: misc/e2image.c:1547 +#: misc/e2image.c:1586 msgid "Move mode requires all data mode." msgstr "原始镜像需要完全数据模式。" -#: misc/e2image.c:1557 +#: misc/e2image.c:1596 msgid "checking if mounted" msgstr "检测其是否已挂载" -#: misc/e2image.c:1564 +#: misc/e2image.c:1603 msgid "" "\n" "Running e2image on a R/W mounted filesystem can result in an\n" @@ -4665,51 +4672,51 @@ msgstr "" "对可读写的文件系统上运行e2image可能导致镜像不连续,\n" "这样的镜像也无法用于调试。如果你确实需要这样做,请使用 -f 选项。\n" -#: misc/e2image.c:1618 +#: misc/e2image.c:1657 msgid "QCOW2 image can not be written to the stdout!\n" msgstr "无法写入qcow2镜像到标准输出!\n" -#: misc/e2image.c:1624 +#: misc/e2image.c:1663 msgid "Can not stat output\n" msgstr "无法对输出进行stat操作\n" -#: misc/e2image.c:1634 +#: misc/e2image.c:1673 #, c-format msgid "Image (%s) is compressed\n" msgstr "镜像(%s)已被压缩\n" -#: misc/e2image.c:1637 +#: misc/e2image.c:1676 #, c-format msgid "Image (%s) is encrypted\n" msgstr "镜像(%s)已被加密\n" -#: misc/e2image.c:1640 -#, fuzzy, c-format +#: misc/e2image.c:1679 +#, c-format msgid "Image (%s) is corrupted\n" -msgstr "镜像(%s)已被加密\n" +msgstr "镜像(%s)已损坏\n" -#: misc/e2image.c:1644 +#: misc/e2image.c:1683 #, c-format msgid "while trying to convert qcow2 image (%s) into raw image (%s)" msgstr "尝试将qcow2镜像(%s)转换为raw镜像(%s)时" -#: misc/e2image.c:1654 +#: misc/e2image.c:1693 msgid "The -c option only supported in raw mode\n" msgstr "只有原始模式支持 -c 选项\n" -#: misc/e2image.c:1659 +#: misc/e2image.c:1698 msgid "The -c option not supported when writing to stdout\n" msgstr "写入到标准输出时无法使用 -c 选项\n" -#: misc/e2image.c:1666 +#: misc/e2image.c:1705 msgid "while allocating check_buf" msgstr "为check_buf分配内存时" -#: misc/e2image.c:1672 +#: misc/e2image.c:1711 msgid "The -p option only supported in raw mode\n" msgstr "只有原始模式支持 -p 选项\n" -#: misc/e2image.c:1682 +#: misc/e2image.c:1721 #, c-format msgid "%d blocks already contained the data to be copied\n" msgstr "%d 个块已包含需要被拷贝的数据\n" @@ -4739,7 +4746,7 @@ msgstr "e2label:读取superblock出错\n" msgid "e2label: not an ext2 filesystem\n" msgstr "e2label:不是一个ex2文件系统\n" -#: misc/e2label.c:97 misc/tune2fs.c:3152 +#: misc/e2label.c:97 misc/tune2fs.c:3117 #, c-format msgid "Warning: label too long, truncating.\n" msgstr "警告:卷标太长,已截短。\n" @@ -4754,17 +4761,15 @@ msgstr "e2label:无法定位到superblock\n" msgid "e2label: error writing superblock\n" msgstr "e2label:写入超级块时出错\n" -#: misc/e2label.c:117 misc/tune2fs.c:1733 +#: misc/e2label.c:117 misc/tune2fs.c:1687 #, c-format msgid "Usage: e2label device [newlabel]\n" msgstr "用法:e2label 设备 [新卷标]\n" #: misc/e2undo.c:124 -#, fuzzy, c-format -msgid "" -"Usage: %s [-f] [-h] [-n] [-o offset] [-v] [-z undo_file] <transaction file> " -"<filesystem>\n" -msgstr "用法:%s [-f] [-h] [-n] [-v] <事务文件> <文件系统>\n" +#, c-format +msgid "Usage: %s [-f] [-h] [-n] [-o offset] [-v] [-z undo_file] <transaction file> <filesystem>\n" +msgstr "用法:%s [-f] [-h] [-n] [-o offset] [-v] [-z undo_file] <事务文件> <文件系统>\n" #: misc/e2undo.c:149 msgid "The file system superblock doesn't match the undo file.\n" @@ -4956,12 +4961,8 @@ msgstr "" #: misc/findsuper.c:190 #, c-format -msgid "" -"byte_offset byte_start byte_end fs_blocks blksz grp mkfs/" -"mount_time sb_uuid label\n" -msgstr "" -"偏移字节 起始字节 结束字节 块数 块大小 grp 创建/挂载时" -"间 超级块 UUID 标签\n" +msgid "byte_offset byte_start byte_end fs_blocks blksz grp mkfs/mount_time sb_uuid label\n" +msgstr "偏移字节 起始字节 结束字节 块数 块大小 grp 创建/挂载时间 超级块 UUID 标签\n" #: misc/findsuper.c:264 #, c-format @@ -5041,9 +5042,7 @@ msgstr "" #: misc/fsck.c:891 #, c-format -msgid "" -"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass " -"number\n" +msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n" msgstr "%s:跳过/etc/fstab中的错误行:传递给fsck非零值的bind挂载项\n" #: misc/fsck.c:918 @@ -5061,11 +5060,8 @@ msgid "--waiting-- (pass %d)\n" msgstr "--请稍候-- (第 %d 步)n\n" #: misc/fsck.c:1085 -msgid "" -"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n" -msgstr "" -"用法:fsck [-AMNPRTV] [ -C [ fd ] ] [-t 文件系统类型] [文件系统选项] [文件系" -"统 ...]\n" +msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n" +msgstr "用法:fsck [-AMNPRTV] [ -C [ fd ] ] [-t 文件系统类型] [文件系统选项] [文件系统 ...]\n" #: misc/fsck.c:1127 #, c-format @@ -5077,53 +5073,53 @@ msgstr "%s:设备过多\n" msgid "%s: too many arguments\n" msgstr "%s:参数过多\n" -#: misc/fuse2fs.c:3739 +#: misc/fuse2fs.c:3745 msgid "Mounting read-only.\n" msgstr "以只读模式挂载。\n" -#: misc/fuse2fs.c:3763 +#: misc/fuse2fs.c:3769 #, c-format msgid "%s: Allowing users to allocate all blocks. This is dangerous!\n" msgstr "%s:允许用户分配所有块。这样做很危险!\n" -#: misc/fuse2fs.c:3775 misc/fuse2fs.c:3789 +#: misc/fuse2fs.c:3781 misc/fuse2fs.c:3795 #, c-format msgid "%s: %s.\n" msgstr "%s:%s。\n" -#: misc/fuse2fs.c:3776 misc/fuse2fs.c:3791 misc/tune2fs.c:3049 +#: misc/fuse2fs.c:3782 misc/fuse2fs.c:3797 misc/tune2fs.c:3013 #, c-format msgid "Please run e2fsck -fy %s.\n" msgstr "请先运行“e2fsck -fy %s”。\n" -#: misc/fuse2fs.c:3798 +#: misc/fuse2fs.c:3804 msgid "Journal needs recovery; running `e2fsck -E journal_only' is required.\n" msgstr "日志需要恢复;请运行“e2fsck -E journal_only”。\n" -#: misc/fuse2fs.c:3806 +#: misc/fuse2fs.c:3812 #, c-format msgid "%s: Writing to the journal is not supported.\n" msgstr "%s:不支持写入日志。\n" -#: misc/fuse2fs.c:3821 +#: misc/fuse2fs.c:3827 msgid "Warning: Mounting unchecked fs, running e2fsck is recommended.\n" msgstr "警告:正在挂载未经检查的文件系统,建议您先运行 e2fsck。\n" -#: misc/fuse2fs.c:3825 +#: misc/fuse2fs.c:3831 msgid "Warning: Maximal mount count reached, running e2fsck is recommended.\n" msgstr "" "警告:尝试挂载次数超过最大值,建议您运行 e2fsck。\n" "\n" -#: misc/fuse2fs.c:3830 +#: misc/fuse2fs.c:3836 msgid "Warning: Check time reached; running e2fsck is recommended.\n" msgstr "警告:检查超时,建议您运行 e2fsck。\n" -#: misc/fuse2fs.c:3834 +#: misc/fuse2fs.c:3840 msgid "Orphans detected; running e2fsck is recommended.\n" msgstr "检测到孤立块;建议您运行 e2fsck。\n" -#: misc/fuse2fs.c:3838 +#: misc/fuse2fs.c:3844 msgid "Errors detected; running e2fsck is required.\n" msgstr "检测到错误;请运行 e2fsck。\n" @@ -5156,8 +5152,7 @@ msgid "" "\t[-m reserved-blocks-percentage] [-o creator-os]\n" "\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n" "\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n" -"\t[-t fs-type] [-T usage-type ] [-U UUID] [-e errors_behavior][-z " -"undo_file]\n" +"\t[-t fs-type] [-T usage-type ] [-U UUID] [-e errors_behavior][-z undo_file]\n" "\t[-jnqvDFSV] device [blocks-count]\n" msgstr "" "用法:%s [-c|-l 文件名] [-b 块大小] [-C 簇大小]\n" @@ -5212,9 +5207,8 @@ msgid "while marking bad blocks as used" msgstr "将坏块标记为已使用的" #: misc/mke2fs.c:368 -#, fuzzy msgid "while writing reserved inodes" -msgstr "写入配额 inode 时" +msgstr "写入预留 inode 时" #: misc/mke2fs.c:420 msgid "Writing inode tables: " @@ -5229,7 +5223,7 @@ msgstr "" "\n" "无法写入 %d 个块到起始于%llu的inode表:%s\n" -#: misc/mke2fs.c:456 misc/mke2fs.c:2726 misc/mke2fs.c:3131 +#: misc/mke2fs.c:456 misc/mke2fs.c:2809 misc/mke2fs.c:3214 msgid "done \n" msgstr "完成 \n" @@ -5400,73 +5394,102 @@ msgstr "文件系统UUID:%s\n" msgid "Superblock backups stored on blocks: " msgstr "超级块的备份存储于下列块: " -#: misc/mke2fs.c:820 +#: misc/mke2fs.c:822 #, c-format msgid "%s requires '-O 64bit'\n" msgstr "" "%s 需要“-O 64bit”选项\n" "\n" -#: misc/mke2fs.c:826 +#: misc/mke2fs.c:828 #, c-format msgid "'%s' must be before 'resize=%u'\n" msgstr "“%s”选项必须位于“resize=%u”之前\n" -#: misc/mke2fs.c:839 +#: misc/mke2fs.c:841 #, c-format msgid "Invalid desc_size: '%s'\n" msgstr "desc_size值无效:“%s”\n" -#: misc/mke2fs.c:853 +#: misc/mke2fs.c:855 #, fuzzy, c-format +#| msgid "Invalid new size: %s\n" msgid "Invalid hash seed: %s\n" msgstr "无效的新大小: %s\n" -#: misc/mke2fs.c:865 +#: misc/mke2fs.c:867 #, c-format msgid "Invalid offset: %s\n" msgstr "无效的偏移量: %s\n" -#: misc/mke2fs.c:879 misc/tune2fs.c:2101 +#: misc/mke2fs.c:881 misc/tune2fs.c:2055 #, c-format msgid "Invalid mmp_update_interval: %s\n" msgstr "无效mmp更新间隔:%s\n" -#: misc/mke2fs.c:896 +#: misc/mke2fs.c:898 #, c-format msgid "Invalid # of backup superblocks: %s\n" msgstr "备份超级块编号无效:%s\n" -#: misc/mke2fs.c:918 +#: misc/mke2fs.c:920 #, c-format msgid "Invalid stride parameter: %s\n" msgstr "无效的步长参数:%s\n" -#: misc/mke2fs.c:933 +#: misc/mke2fs.c:935 #, c-format msgid "Invalid stripe-width parameter: %s\n" msgstr "无效的带宽参数:%s\n" -#: misc/mke2fs.c:956 +#: misc/mke2fs.c:958 #, c-format msgid "Invalid resize parameter: %s\n" msgstr "无效的改变大小参数:%s\n" -#: misc/mke2fs.c:963 +#: misc/mke2fs.c:965 msgid "The resize maximum must be greater than the filesystem size.\n" msgstr "所需改变的大小必须大于当前文件系统的大小。\n" -#: misc/mke2fs.c:987 +#: misc/mke2fs.c:989 msgid "On-line resizing not supported with revision 0 filesystems\n" msgstr "版本为0的文件系统不支持在线改变大小。\n" -#: misc/mke2fs.c:1013 misc/mke2fs.c:1022 +#: misc/mke2fs.c:1015 misc/mke2fs.c:1024 #, c-format msgid "Invalid root_owner: '%s'\n" msgstr "无效的根目录所有者:“%s”\n" -#: misc/mke2fs.c:1065 +#: misc/mke2fs.c:1069 #, c-format +msgid "Invalid encoding: %s" +msgstr "无效的编码:%s" + +#: misc/mke2fs.c:1087 +#, fuzzy, c-format +#| msgid "" +#| "\n" +#| "Bad option(s) specified: %s\n" +#| "\n" +#| "Extended options are separated by commas, and may take an argument which\n" +#| "\tis set off by an equals ('=') sign.\n" +#| "\n" +#| "Valid extended options are:\n" +#| "\tmmp_update_interval=<interval>\n" +#| "\tnum_backup_sb=<0|1|2>\n" +#| "\tstride=<RAID per-disk data chunk in blocks>\n" +#| "\tstripe-width=<RAID stride * data disks in blocks>\n" +#| "\toffset=<offset to create the file system>\n" +#| "\tresize=<resize maximum size in blocks>\n" +#| "\tpacked_meta_blocks=<0 to disable, 1 to enable>\n" +#| "\tlazy_itable_init=<0 to disable, 1 to enable>\n" +#| "\tlazy_journal_init=<0 to disable, 1 to enable>\n" +#| "\troot_owner=<uid of root dir>:<gid of root dir>\n" +#| "\ttest_fs\n" +#| "\tdiscard\n" +#| "\tnodiscard\n" +#| "\tquotatype=<quota type(s) to be enabled>\n" +#| "\n" msgid "" "\n" "Bad option(s) specified: %s\n" @@ -5488,6 +5511,8 @@ msgid "" "\ttest_fs\n" "\tdiscard\n" "\tnodiscard\n" +"\tencoding=<encoding>\n" +"\tencoding_flags=<flags>\n" "\tquotatype=<quota type(s) to be enabled>\n" "\n" msgstr "" @@ -5513,7 +5538,7 @@ msgstr "" "\tquotatype=<要启用的配额类型>\n" "\n" -#: misc/mke2fs.c:1090 +#: misc/mke2fs.c:1114 #, c-format msgid "" "\n" @@ -5525,7 +5550,17 @@ msgstr "" "\n" "\n" -#: misc/mke2fs.c:1135 +#: misc/mke2fs.c:1125 +#, c-format +msgid "error: Invalid encoding flag: %s\n" +msgstr "" + +#: misc/mke2fs.c:1131 +#, c-format +msgid "error: An encoding must be explicitly specified when passing encoding-flags\n" +msgstr "" + +#: misc/mke2fs.c:1179 #, c-format msgid "" "Syntax error in mke2fs config file (%s, line #%d)\n" @@ -5534,17 +5569,17 @@ msgstr "" "mke2fs配置文件中有语法错误(%s,第 %d 行)\n" "\t%s\n" -#: misc/mke2fs.c:1148 misc/tune2fs.c:1120 +#: misc/mke2fs.c:1192 misc/tune2fs.c:1068 #, c-format msgid "Invalid filesystem option set: %s\n" msgstr "设置了无效的文件系统选项:%s\n" -#: misc/mke2fs.c:1160 misc/tune2fs.c:411 +#: misc/mke2fs.c:1204 misc/tune2fs.c:417 #, c-format msgid "Invalid mount option set: %s\n" msgstr "设置了无效的挂载选项:%s\n" -#: misc/mke2fs.c:1296 +#: misc/mke2fs.c:1340 #, c-format msgid "" "\n" @@ -5553,7 +5588,7 @@ msgstr "" "\n" "你的mke2fs.conf文件中没有定义类型 %s 的文件系统。\n" -#: misc/mke2fs.c:1300 +#: misc/mke2fs.c:1344 msgid "" "You probably need to install an updated mke2fs.conf file.\n" "\n" @@ -5561,11 +5596,11 @@ msgstr "" "你可能需要升级mke2fs.conf文件。\n" "\n" -#: misc/mke2fs.c:1304 +#: misc/mke2fs.c:1348 msgid "Aborting...\n" msgstr "正在终止...\n" -#: misc/mke2fs.c:1345 +#: misc/mke2fs.c:1389 #, c-format msgid "" "\n" @@ -5576,156 +5611,154 @@ msgstr "" "警告:mke2fs.conf中未定义文件系统类型 %s\n" "\n" -#: misc/mke2fs.c:1527 +#: misc/mke2fs.c:1571 msgid "Couldn't allocate memory for new PATH.\n" msgstr "无法为新路径分配内存。\n" -#: misc/mke2fs.c:1564 +#: misc/mke2fs.c:1608 #, c-format msgid "Couldn't init profile successfully (error: %ld).\n" msgstr "无法成功初始化配置(错误:%ld)。\n" -#: misc/mke2fs.c:1597 +#: misc/mke2fs.c:1641 #, c-format msgid "invalid block size - %s" msgstr "无效的块大小 - %s" -#: misc/mke2fs.c:1601 +#: misc/mke2fs.c:1645 #, c-format msgid "Warning: blocksize %d not usable on most systems.\n" msgstr "警告:块大小 %d 在很多系统中不可用。\n" -#: misc/mke2fs.c:1617 +#: misc/mke2fs.c:1661 #, c-format msgid "invalid cluster size - %s" msgstr "无效的簇大小 - %s" -#: misc/mke2fs.c:1630 +#: misc/mke2fs.c:1674 msgid "'-R' is deprecated, use '-E' instead" msgstr "“-R” 选项已被废弃,请使用“-E”选项" -#: misc/mke2fs.c:1644 misc/tune2fs.c:1830 +#: misc/mke2fs.c:1688 misc/tune2fs.c:1784 #, c-format msgid "bad error behavior - %s" msgstr "出错行为有误 - %s" -#: misc/mke2fs.c:1656 +#: misc/mke2fs.c:1700 msgid "Illegal number for blocks per group" msgstr "非法的每组块数" -#: misc/mke2fs.c:1661 +#: misc/mke2fs.c:1705 msgid "blocks per group must be multiple of 8" msgstr "每组块数必须是8的倍数" -#: misc/mke2fs.c:1669 +#: misc/mke2fs.c:1713 msgid "Illegal number for flex_bg size" msgstr "非法的弹性组大小" -#: misc/mke2fs.c:1675 +#: misc/mke2fs.c:1719 msgid "flex_bg size must be a power of 2" msgstr "弹性组的大小必须是2的次方" -#: misc/mke2fs.c:1680 +#: misc/mke2fs.c:1724 #, c-format msgid "flex_bg size (%lu) must be less than or equal to 2^31" msgstr "弹性组的大小(%lu)必须小于等于2^31" -#: misc/mke2fs.c:1690 +#: misc/mke2fs.c:1734 #, c-format msgid "invalid inode ratio %s (min %d/max %d)" msgstr "无效的inode比 %s(最小 %d /最大 %d)" -#: misc/mke2fs.c:1700 +#: misc/mke2fs.c:1744 #, c-format msgid "invalid inode size - %s" msgstr "无效的inode大小 - %s" -#: misc/mke2fs.c:1713 -msgid "" -"Warning: -K option is deprecated and should not be used anymore. Use '-E " -"nodiscard' extended option instead!\n" +#: misc/mke2fs.c:1757 +msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n" msgstr "" "警告:-K 选项已被废弃,今后也不应当被使用。请使用扩展选项\n" "“-E nodiscard”作为替代!\n" -#: misc/mke2fs.c:1724 +#: misc/mke2fs.c:1768 msgid "in malloc for bad_blocks_filename" msgstr "为bad_blocks_filename分配内存时" -#: misc/mke2fs.c:1733 +#: misc/mke2fs.c:1777 #, c-format msgid "" "Warning: label too long; will be truncated to '%s'\n" "\n" msgstr "警告:卷标太长,已截短为“%s”\n" -#: misc/mke2fs.c:1742 +#: misc/mke2fs.c:1786 #, c-format msgid "invalid reserved blocks percent - %s" msgstr "无效的保留块百分比 - %s" -#: misc/mke2fs.c:1757 +#: misc/mke2fs.c:1801 #, c-format msgid "bad num inodes - %s" msgstr "错误的inode数 - %s" -#: misc/mke2fs.c:1770 +#: misc/mke2fs.c:1814 msgid "while allocating fs_feature string" msgstr "分配 fs_feature 字符串时" -#: misc/mke2fs.c:1787 +#: misc/mke2fs.c:1831 #, c-format msgid "bad revision level - %s" msgstr "错误的版本号 - %s" -#: misc/mke2fs.c:1792 +#: misc/mke2fs.c:1836 #, c-format msgid "while trying to create revision %d" msgstr "尝试创建版本 %d 时" -#: misc/mke2fs.c:1806 +#: misc/mke2fs.c:1850 msgid "The -t option may only be used once" msgstr "-t 选项只能被指定一次" -#: misc/mke2fs.c:1814 +#: misc/mke2fs.c:1858 msgid "The -T option may only be used once" msgstr "-T 选项只能被指定一次" -#: misc/mke2fs.c:1870 misc/mke2fs.c:3215 +#: misc/mke2fs.c:1914 misc/mke2fs.c:3298 #, c-format msgid "while trying to open journal device %s\n" msgstr "尝试打开日志设备 %s 时\n" -#: misc/mke2fs.c:1876 +#: misc/mke2fs.c:1920 #, c-format msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n" msgstr "日志设备的块大小(%d)不能低于最小的块大小 %d\n" -#: misc/mke2fs.c:1882 +#: misc/mke2fs.c:1926 #, c-format msgid "Using journal device's blocksize: %d\n" msgstr "根据日志设备确定块大小:%d\n" -#: misc/mke2fs.c:1893 +#: misc/mke2fs.c:1937 #, c-format msgid "invalid blocks '%s' on device '%s'" msgstr "无效的块数“%s”于设备“%s”" -#: misc/mke2fs.c:1923 +#: misc/mke2fs.c:1967 msgid "filesystem" msgstr "文件系统" -#: misc/mke2fs.c:1941 resize/main.c:497 +#: misc/mke2fs.c:1985 resize/main.c:497 msgid "while trying to determine filesystem size" msgstr "尝试确定文件系统大小时" -#: misc/mke2fs.c:1947 +#: misc/mke2fs.c:1991 msgid "" "Couldn't determine device size; you must specify\n" "the size of the filesystem\n" msgstr "无法确定设备大小;你必须手动指定大小\n" -#: misc/mke2fs.c:1954 +#: misc/mke2fs.c:1998 msgid "" "Device size reported to be zero. Invalid partition specified, or\n" "\tpartition table wasn't reread after running fdisk, due to\n" @@ -5736,50 +5769,48 @@ msgstr "" "\t执行fdisk后未被重新加载(分区正被占用)导致的。\n" "\t你可能需要重启后重新读取分区表。\n" -#: misc/mke2fs.c:1971 +#: misc/mke2fs.c:2015 msgid "Filesystem larger than apparent device size." msgstr "文件系统大小超过设备的实际大小。" -#: misc/mke2fs.c:1991 +#: misc/mke2fs.c:2035 msgid "Failed to parse fs types list\n" msgstr "解析文件系统类型列表失败\n" -#: misc/mke2fs.c:2040 +#: misc/mke2fs.c:2085 msgid "The HURD does not support the filetype feature.\n" msgstr "HURD 不支持文件类型。\n" -#: misc/mke2fs.c:2045 +#: misc/mke2fs.c:2090 msgid "The HURD does not support the huge_file feature.\n" msgstr "HURD 不支持大文件特性。\n" -#: misc/mke2fs.c:2050 +#: misc/mke2fs.c:2095 msgid "The HURD does not support the metadata_csum feature.\n" msgstr "HURD 不支持元数据校验值特性。\n" -#: misc/mke2fs.c:2055 -#, fuzzy +#: misc/mke2fs.c:2100 msgid "The HURD does not support the ea_inode feature.\n" -msgstr "HURD 不支持大文件特性。\n" +msgstr "HURD 不支持 ea_inode 特性。\n" -#: misc/mke2fs.c:2065 +#: misc/mke2fs.c:2110 msgid "while trying to determine hardware sector size" msgstr "尝试确定硬件扇区大小时" -#: misc/mke2fs.c:2071 +#: misc/mke2fs.c:2116 msgid "while trying to determine physical sector size" msgstr "尝试确定物理扇区大小时" -#: misc/mke2fs.c:2103 +#: misc/mke2fs.c:2148 msgid "while setting blocksize; too small for device\n" msgstr "设置块大小时;对于设备来说太小\n" -#: misc/mke2fs.c:2108 +#: misc/mke2fs.c:2153 #, c-format -msgid "" -"Warning: specified blocksize %d is less than device physical sectorsize %d\n" +msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n" msgstr "警告:指定的块大小 %d 小于设备物理扇区大小%d\n" -#: misc/mke2fs.c:2132 +#: misc/mke2fs.c:2177 #, c-format msgid "" "%s: Size of device (0x%llx blocks) %s too big to be expressed\n" @@ -5788,8 +5819,11 @@ msgstr "" "%1$s:设备 %3$s 的尺寸(0x%2$llx 个块)太大,无法用32位数表示\n" "\t改为使用 %4$d 的块大小。\n" -#: misc/mke2fs.c:2144 +#: misc/mke2fs.c:2191 #, fuzzy, 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" msgid "" "%s: Size of device (0x%llx blocks) %s too big to create\n" "\ta filesystem using a blocksize of %d.\n" @@ -5797,80 +5831,82 @@ msgstr "" "%1$s:设备 %3$s 的尺寸(0x%2$llx 个块)太大,无法用32位数表示\n" "\t改为使用 %4$d 的块大小。\n" -#: misc/mke2fs.c:2166 +#: misc/mke2fs.c:2213 msgid "fs_types for mke2fs.conf resolution: " msgstr "mke2fs.conf中有关文件系统类型的解释: " -#: misc/mke2fs.c:2173 +#: misc/mke2fs.c:2220 msgid "Filesystem features not supported with revision 0 filesystems\n" msgstr "" "版本为0的文件系统不支持这些特性\n" "\n" -#: misc/mke2fs.c:2181 +#: misc/mke2fs.c:2228 msgid "Sparse superblocks not supported with revision 0 filesystems\n" msgstr "版本为0的文件系统不支持分散式超级块\n" -#: misc/mke2fs.c:2191 +#: misc/mke2fs.c:2238 msgid "Journals not supported with revision 0 filesystems\n" msgstr "版本为0的文件系统不支持日志\n" -#: misc/mke2fs.c:2204 +#: misc/mke2fs.c:2251 #, c-format msgid "invalid reserved blocks percent - %lf" msgstr "无效的保留块百分比 - %lf" -#: misc/mke2fs.c:2221 -msgid "" -"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to " -"rectify.\n" +#: misc/mke2fs.c:2268 +msgid "Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to rectify.\n" msgstr "64位系统必须启用extent特性。请使用“-O extents”选项来修正。\n" -#: misc/mke2fs.c:2241 +#: misc/mke2fs.c:2288 msgid "The cluster size may not be smaller than the block size.\n" msgstr "簇大小不能小于块大小。\n" -#: misc/mke2fs.c:2247 +#: misc/mke2fs.c:2294 msgid "specifying a cluster size requires the bigalloc feature" msgstr "指定簇大小需要启用bigalloc特性" -#: misc/mke2fs.c:2267 +#: misc/mke2fs.c:2314 #, c-format msgid "warning: Unable to get device geometry for %s\n" msgstr "警告:无法获取 %s 的设备布局\n" -#: misc/mke2fs.c:2270 +#: misc/mke2fs.c:2317 #, c-format msgid "%s alignment is offset by %lu bytes.\n" msgstr "%s 未对齐,偏移了 %lu 个字节。\n" -#: misc/mke2fs.c:2272 +#: misc/mke2fs.c:2319 #, c-format -msgid "" -"This may result in very poor performance, (re)-partitioning suggested.\n" +msgid "This may result in very poor performance, (re)-partitioning suggested.\n" msgstr "这可能导致性能下降,建议重新进行分区。\n" -#: misc/mke2fs.c:2293 +#: misc/mke2fs.c:2340 #, c-format msgid "%d-byte blocks too big for system (max %d)" msgstr "%d字节的块对于系统来说太大(最大为 %d)" -#: misc/mke2fs.c:2297 +#: misc/mke2fs.c:2344 #, c-format -msgid "" -"Warning: %d-byte blocks too big for system (max %d), forced to continue\n" +msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n" msgstr "警告:%d字节的块对于系统来说太大(最大为 %d),但仍然强制进行操作\n" -#: misc/mke2fs.c:2305 +#: misc/mke2fs.c:2352 #, c-format -msgid "" -"Suggestion: Use Linux kernel >= 3.18 for improved stability of the metadata " -"and journal checksum features.\n" +msgid "Suggestion: Use Linux kernel >= 3.18 for improved stability of the metadata and journal checksum features.\n" +msgstr "建议:使用 3.18 以上的 Linux 内核以提高元数据稳定性,以及使用日志校验值特性。\n" + +#: misc/mke2fs.c:2398 +#, c-format +msgid "Unknown filename encoding from profile: %s" +msgstr "" + +#: misc/mke2fs.c:2409 +#, c-format +msgid "Unknown encoding flags from profile: %s" msgstr "" -"建议:使用 3.18 以上的 Linux 内核以提高元数据稳定性,以及使用日志校验值特" -"性。\n" -#: misc/mke2fs.c:2360 +#: misc/mke2fs.c:2434 #, c-format msgid "" "\n" @@ -5884,16 +5920,29 @@ msgstr "" "将创建含有 %llu 个块的文件系统,这可能与您的预期不服。\n" "\n" -#: misc/mke2fs.c:2375 +#: misc/mke2fs.c:2449 #, fuzzy, c-format +#| msgid "%d byte inodes are too small for project quota; specify larger size" msgid "%d byte inodes are too small for project quota" msgstr "%d 字节的 inode 对于项目配额来说太小;请指定一个更大的值" -#: misc/mke2fs.c:2397 +#: misc/mke2fs.c:2465 +#, fuzzy +#| msgid "" +#| "The resize_inode and meta_bg features are not compatible.\n" +#| "They can not be both enabled simultaneously.\n" +msgid "" +"The encrypt and casefold features are not compatible.\n" +"They can not be both enabled simultaneously.\n" +msgstr "" +"resize_inode 和 meta_bg 特性不兼容。\n" +"无法同时启用它们。\n" + +#: misc/mke2fs.c:2480 msgid "Can't support bigalloc feature without extents feature" msgstr "无法在缺乏extent特性的情况下支持bigalloc特性" -#: misc/mke2fs.c:2404 +#: misc/mke2fs.c:2487 msgid "" "The resize_inode and meta_bg features are not compatible.\n" "They can not be both enabled simultaneously.\n" @@ -5901,7 +5950,7 @@ msgstr "" "resize_inode 和 meta_bg 特性不兼容。\n" "无法同时启用它们。\n" -#: misc/mke2fs.c:2412 +#: misc/mke2fs.c:2495 msgid "" "\n" "Warning: the bigalloc feature is still under development\n" @@ -5913,39 +5962,39 @@ msgstr "" "更多详情请参见 https://ext4.wiki.kernel.org/index.php/Bigalloc\n" "\n" -#: misc/mke2fs.c:2424 +#: misc/mke2fs.c:2507 msgid "reserved online resize blocks not supported on non-sparse filesystem" msgstr "非分散式文件系统不支持为在线调整大小设置保留块" -#: misc/mke2fs.c:2433 +#: misc/mke2fs.c:2516 msgid "blocks per group count out of range" msgstr "每组块数超过允许范围" -#: misc/mke2fs.c:2455 +#: misc/mke2fs.c:2538 msgid "Flex_bg feature not enabled, so flex_bg size may not be specified" msgstr "弹性组特性未启用,所以无法指定弹性组尺寸" -#: misc/mke2fs.c:2467 +#: misc/mke2fs.c:2550 #, c-format msgid "invalid inode size %d (min %d/max %d)" msgstr "无效的inode大小 %d(最小 %d /最大 %d)" -#: misc/mke2fs.c:2482 +#: misc/mke2fs.c:2565 #, c-format msgid "%d byte inodes are too small for inline data; specify larger size" msgstr "%d 字节的 inode 对于内联数据来说太小;请指定一个更大的值" -#: misc/mke2fs.c:2497 +#: misc/mke2fs.c:2580 #, c-format msgid "too many inodes (%llu), raise inode ratio?" msgstr "inode太多(%llu),是否提高inode比?" -#: misc/mke2fs.c:2504 +#: misc/mke2fs.c:2587 #, c-format msgid "too many inodes (%llu), specify < 2^32 inodes" msgstr "inode数量太多(%llu),请指定小于 2^32 的inode数" -#: misc/mke2fs.c:2518 +#: misc/mke2fs.c:2601 #, c-format msgid "" "inode_size (%u) * inodes_count (%u) too big for a\n" @@ -5956,78 +6005,69 @@ msgstr "" "\t的系统来说太大,请指定更高的inode比(使用 -i 选项)\n" "\t或更少的inode数(-N)。\n" -#: misc/mke2fs.c:2705 +#: misc/mke2fs.c:2788 msgid "Discarding device blocks: " msgstr "丢弃设备块: " -#: misc/mke2fs.c:2721 +#: misc/mke2fs.c:2804 msgid "failed - " msgstr "已失败 - " -#: misc/mke2fs.c:2780 +#: misc/mke2fs.c:2863 msgid "while initializing quota context" msgstr "初始化配额上下文时" -#: misc/mke2fs.c:2787 +#: misc/mke2fs.c:2870 msgid "while writing quota inodes" msgstr "写入配额 inode 时" -#: misc/mke2fs.c:2812 +#: misc/mke2fs.c:2895 #, c-format msgid "bad error behavior in profile - %s" msgstr "配置中的出错行为有误 - %s" -#: misc/mke2fs.c:2888 -#, fuzzy +#: misc/mke2fs.c:2971 msgid "in malloc for android_sparse_params" -msgstr "为bad_blocks_filename分配内存时" +msgstr "为 android_sparse_params 分配内存时" -#: misc/mke2fs.c:2902 +#: misc/mke2fs.c:2985 msgid "while setting up superblock" msgstr "设置superblock时" -#: misc/mke2fs.c:2918 -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 "" -"未启用 extent 特性,所以仅对文件 extent 树进行校验,而不会对块位图进行校验。" -"不启用 extent 将降低元数据校验值的覆盖范围。可以使用参数“-O extents”来进行纠" -"正。\n" +#: misc/mke2fs.c:3001 +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 "未启用 extent 特性,所以仅对文件 extent 树进行校验,而不会对块位图进行校验。不启用 extent 将降低元数据校验值的覆盖范围。可以使用参数“-O extents”来进行纠正。\n" -#: misc/mke2fs.c:2925 -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" +#: misc/mke2fs.c:3008 +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 "" -"未启用 64 位文件系统支持,将无法使用更大的字段来进行更完整的校验。可以使用参" -"数“-O 64bit”来进行纠正。\n" +"未启用 64 位文件系统支持,将无法使用更大的字段来进行更完整的校验。可以使用参数“-O 64bit”来进行纠正。\n" "\n" -#: misc/mke2fs.c:2933 +#: misc/mke2fs.c:3016 #, fuzzy +#| msgid "The metadata_csum_seed feature requres the metadata_csum feature.\n" msgid "The metadata_csum_seed feature requires the metadata_csum feature.\n" msgstr "启用 metadata_csum_seed 特性需要同时启用 metadata_csum 特性。\n" -#: misc/mke2fs.c:2957 +#: misc/mke2fs.c:3040 msgid "Discard succeeded and will return 0s - skipping inode table wipe\n" msgstr "舍弃成功,将会返回0值 - 跳过擦除inode表\n" -#: misc/mke2fs.c:3056 +#: misc/mke2fs.c:3139 #, c-format msgid "unknown os - %s" msgstr "未知操作系统 - %s" -#: misc/mke2fs.c:3119 +#: misc/mke2fs.c:3202 msgid "Allocating group tables: " msgstr "正在分配组表: " -#: misc/mke2fs.c:3127 +#: misc/mke2fs.c:3210 msgid "while trying to allocate filesystem tables" msgstr "尝试分配文件系统表时" -#: misc/mke2fs.c:3136 +#: misc/mke2fs.c:3219 msgid "" "\n" "\twhile converting subcluster bitmap" @@ -6035,30 +6075,30 @@ msgstr "" "\n" "\t转换子簇位图时" -#: misc/mke2fs.c:3142 +#: misc/mke2fs.c:3225 #, c-format msgid "%s may be further corrupted by superblock rewrite\n" msgstr "%s 可能因超级块被改写而损\n" -#: misc/mke2fs.c:3183 +#: misc/mke2fs.c:3266 #, c-format msgid "while zeroing block %llu at end of filesystem" msgstr "对文件系统末尾的块 %llu 填零时" -#: misc/mke2fs.c:3196 +#: misc/mke2fs.c:3279 msgid "while reserving blocks for online resize" msgstr "为在线改变大小保留块时" -#: misc/mke2fs.c:3208 misc/tune2fs.c:1538 +#: misc/mke2fs.c:3291 misc/tune2fs.c:1492 msgid "journal" msgstr "日志" -#: misc/mke2fs.c:3220 +#: misc/mke2fs.c:3303 #, c-format msgid "Adding journal to device %s: " msgstr "将日志添加到设备 %s: " -#: misc/mke2fs.c:3227 +#: misc/mke2fs.c:3310 #, c-format msgid "" "\n" @@ -6067,21 +6107,21 @@ msgstr "" "\n" "尝试将日志添加到设备 %s时" -#: misc/mke2fs.c:3232 misc/mke2fs.c:3261 misc/mke2fs.c:3299 -#: misc/mk_hugefiles.c:598 misc/tune2fs.c:1567 misc/tune2fs.c:1586 +#: misc/mke2fs.c:3315 misc/mke2fs.c:3344 misc/mke2fs.c:3382 +#: misc/mk_hugefiles.c:600 misc/tune2fs.c:1521 misc/tune2fs.c:1540 msgid "done\n" msgstr "完成\n" -#: misc/mke2fs.c:3238 +#: misc/mke2fs.c:3321 msgid "Skipping journal creation in super-only mode\n" msgstr "跳过创建日志的步骤(唯超级块模式)\n" -#: misc/mke2fs.c:3248 +#: misc/mke2fs.c:3331 #, c-format msgid "Creating journal (%u blocks): " msgstr "创建日志(%u 个块)" -#: misc/mke2fs.c:3257 +#: misc/mke2fs.c:3340 msgid "" "\n" "\twhile trying to create journal" @@ -6089,7 +6129,7 @@ msgstr "" "\n" "\t尝试创建日志时" -#: misc/mke2fs.c:3269 misc/tune2fs.c:1185 +#: misc/mke2fs.c:3352 misc/tune2fs.c:1133 msgid "" "\n" "Error while enabling multiple mount protection feature." @@ -6097,29 +6137,28 @@ msgstr "" "\n" "启用MMP特性失败。" -#: misc/mke2fs.c:3274 +#: misc/mke2fs.c:3357 #, c-format msgid "Multiple mount protection is enabled with update interval %d seconds.\n" msgstr "MMP(多重挂载保护)已被启用,更新间隔为 %d 秒。\n" -#: misc/mke2fs.c:3290 +#: misc/mke2fs.c:3373 msgid "Copying files into the device: " msgstr "将文件复制到设备:" -#: misc/mke2fs.c:3296 +#: misc/mke2fs.c:3379 msgid "while populating file system" msgstr "于填充文件系统时" -#: misc/mke2fs.c:3303 +#: misc/mke2fs.c:3386 msgid "Writing superblocks and filesystem accounting information: " msgstr "写入超级块和文件系统账户统计信息: " -#: misc/mke2fs.c:3310 -#, fuzzy +#: misc/mke2fs.c:3393 msgid "while writing out and closing file system" -msgstr "对文件系统末尾的块 %llu 填零时" +msgstr "写出并关闭文件系统时" -#: misc/mke2fs.c:3313 +#: misc/mke2fs.c:3396 msgid "" "done\n" "\n" @@ -6129,30 +6168,30 @@ msgstr "" #: misc/mk_hugefiles.c:339 #, fuzzy, c-format +#| msgid "while zeroing block %llu at end of filesystem" msgid "while zeroing block %llu for hugefile" msgstr "对文件系统末尾的块 %llu 填零时" -#: misc/mk_hugefiles.c:514 +#: misc/mk_hugefiles.c:515 #, c-format -msgid "" -"Partition offset of %llu (%uk) blocks not compatible with cluster size %u.\n" +msgid "Partition offset of %llu (%uk) blocks not compatible with cluster size %u.\n" msgstr "分区偏移量 %llu(%uk)块与簇大小 %u 不相容。\n" -#: misc/mk_hugefiles.c:581 +#: misc/mk_hugefiles.c:583 msgid "Huge files will be zero'ed\n" msgstr "将对大文件填零\n" -#: misc/mk_hugefiles.c:582 +#: misc/mk_hugefiles.c:584 #, c-format msgid "Creating %lu huge file(s) " msgstr "创建 %lu 个大文件" -#: misc/mk_hugefiles.c:584 +#: misc/mk_hugefiles.c:586 #, c-format msgid "with %llu blocks each" msgstr "每个使用 %llu 个块" -#: misc/mk_hugefiles.c:593 +#: misc/mk_hugefiles.c:595 #, c-format msgid "while creating huge file %lu" msgstr "创建大文件 %lu 时" @@ -6204,16 +6243,27 @@ msgstr "" #: misc/tune2fs.c:121 #, fuzzy +#| msgid "Please run e2fsck -D on the filesystem.\n" msgid "Please run e2fsck -f on the filesystem.\n" msgstr "请在这个文件系统上运行 e2fsck -D。\n" #: misc/tune2fs.c:123 #, fuzzy +#| msgid "Please run e2fsck -D on the filesystem.\n" msgid "Please run e2fsck -fD on the filesystem.\n" msgstr "请在这个文件系统上运行 e2fsck -D。\n" #: misc/tune2fs.c:136 #, fuzzy, c-format +#| msgid "" +#| "Usage: %s [-c max_mounts_count] [-e errors_behavior] [-f] [-g group]\n" +#| "\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n" +#| "\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]]\n" +#| "\t[-p mmp_update_interval] [-r reserved_blocks_count] [-u user]\n" +#| "\t[-C mount_count] [-L volume_label] [-M last_mounted_dir]\n" +#| "\t[-O [^]feature[,...]] [-Q quota_options]\n" +#| "\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n" +#| "\t[-I new_inode_size] [-z undo_file] device\n" msgid "" "Usage: %s [-c max_mounts_count] [-e errors_behavior] [-f] [-g group]\n" "\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n" @@ -6241,16 +6291,25 @@ msgstr "日志超级块未找到!\n" msgid "while trying to open external journal" msgstr "尝试打开外部日志时" -#: misc/tune2fs.c:287 misc/tune2fs.c:2845 +#: misc/tune2fs.c:287 misc/tune2fs.c:2804 #, c-format msgid "%s is not a journal device.\n" msgstr "%s 不是日志设备。\n" -#: misc/tune2fs.c:297 misc/tune2fs.c:2856 +#: misc/tune2fs.c:296 misc/tune2fs.c:2813 +#, c-format +msgid "" +"Journal superblock is corrupted, nr_users\n" +"is too high (%d).\n" +msgstr "" +"日志超级块已损坏,nr_users\n" +"过高(%d)。\n" + +#: misc/tune2fs.c:303 misc/tune2fs.c:2820 msgid "Filesystem's UUID not found on journal device.\n" msgstr "日志设备中未找到文件系统的UUID。\n" -#: misc/tune2fs.c:321 +#: misc/tune2fs.c:327 msgid "" "Cannot locate journal device. It was NOT removed\n" "Use -f option to remove missing journal device.\n" @@ -6259,52 +6318,52 @@ msgstr "" "请使用 -f 选项来移除丢失的日志设备。\n" "\n" -#: misc/tune2fs.c:330 +#: misc/tune2fs.c:336 msgid "Journal removed\n" msgstr "日志已删除\n" -#: misc/tune2fs.c:374 +#: misc/tune2fs.c:380 msgid "while reading bitmaps" msgstr "读取位图时" -#: misc/tune2fs.c:382 +#: misc/tune2fs.c:388 msgid "while clearing journal inode" msgstr "读取坏块inode时" -#: misc/tune2fs.c:393 +#: misc/tune2fs.c:399 msgid "while writing journal inode" msgstr "写入日志inode时" -#: misc/tune2fs.c:429 misc/tune2fs.c:452 misc/tune2fs.c:465 +#: misc/tune2fs.c:435 misc/tune2fs.c:458 misc/tune2fs.c:471 msgid "(and reboot afterwards!)\n" msgstr "(并且过后重启!)\n" -#: misc/tune2fs.c:480 +#: misc/tune2fs.c:486 #, c-format msgid "After running e2fsck, please run `resize2fs %s %s" msgstr "在运行 e2fsck 后,请运行“resize2fs %s %s" -#: misc/tune2fs.c:483 +#: misc/tune2fs.c:489 #, c-format msgid "Please run `resize2fs %s %s" msgstr "请运行“resize2fs %s %s" -#: misc/tune2fs.c:487 +#: misc/tune2fs.c:493 #, c-format msgid " -z \"%s\"" msgstr " -z \"%s\"" -#: misc/tune2fs.c:489 +#: misc/tune2fs.c:495 #, c-format msgid "' to enable 64-bit mode.\n" msgstr "”来启用 64 位模式。\n" -#: misc/tune2fs.c:491 +#: misc/tune2fs.c:497 #, c-format msgid "' to disable 64-bit mode.\n" msgstr "”来禁用 64 位模式。\n" -#: misc/tune2fs.c:1087 +#: misc/tune2fs.c:1035 msgid "" "WARNING: Could not confirm kernel support for metadata_csum_seed.\n" " This requires Linux >= v4.4.\n" @@ -6312,29 +6371,29 @@ msgstr "" "警告:无法确定内核是否支持 metadata_csum_seed 特性。\n" " 该特性仅被 4.4 以上的 Linux 内核支持。\n" -#: misc/tune2fs.c:1123 +#: misc/tune2fs.c:1071 #, c-format msgid "Clearing filesystem feature '%s' not supported.\n" msgstr "移除不被支持的文件系统特性“%s”。\n" -#: misc/tune2fs.c:1129 +#: misc/tune2fs.c:1077 #, c-format msgid "Setting filesystem feature '%s' not supported.\n" msgstr "设置不被支持的文件系统特性“%s”。\n" -#: misc/tune2fs.c:1138 +#: misc/tune2fs.c:1086 msgid "" "The has_journal feature may only be cleared when the filesystem is\n" "unmounted or mounted read-only.\n" msgstr "只有当文件系统被卸载,或以只读模式挂载时才能移除其has_journal特性。\n" -#: misc/tune2fs.c:1146 +#: misc/tune2fs.c:1094 msgid "" "The needs_recovery flag is set. Please run e2fsck before clearing\n" "the has_journal flag.\n" msgstr "发现needs_recovery标志。请在移除has_journal特性前运行e2fsck。\n" -#: misc/tune2fs.c:1164 +#: misc/tune2fs.c:1112 msgid "" "Setting filesystem feature 'sparse_super' not supported\n" "for filesystems with the meta_bg feature enabled.\n" @@ -6342,100 +6401,89 @@ msgstr "" "启用了meta_bg特性的文件系统不支持“sparse_super”\n" "特性。\n" -#: misc/tune2fs.c:1177 +#: misc/tune2fs.c:1125 msgid "" "The multiple mount protection feature can't\n" "be set if the filesystem is mounted or\n" "read-only.\n" msgstr "文件系统被挂载或为只读属性时无法设置MMP特性。\n" -#: misc/tune2fs.c:1195 +#: misc/tune2fs.c:1143 #, c-format msgid "Multiple mount protection has been enabled with update interval %ds.\n" msgstr "MMP(多重挂载保护)已被启用,更新间隔为 %ds。\n" -#: misc/tune2fs.c:1204 +#: misc/tune2fs.c:1152 msgid "" "The multiple mount protection feature cannot\n" "be disabled if the filesystem is readonly.\n" msgstr "文件系统为只读状态时无法禁用MMP特性。\n" -#: misc/tune2fs.c:1212 +#: misc/tune2fs.c:1160 msgid "Error while reading bitmaps\n" msgstr "读取位图时发生错误\n" -#: misc/tune2fs.c:1221 +#: misc/tune2fs.c:1169 #, c-format msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n" msgstr "MMP块的幻数不匹配。期望值:%x,实际:%x\n" -#: misc/tune2fs.c:1226 +#: misc/tune2fs.c:1174 msgid "while reading MMP block." msgstr "读取MMP块时" -#: misc/tune2fs.c:1258 +#: misc/tune2fs.c:1206 msgid "" "Clearing the flex_bg flag would cause the the filesystem to be\n" "inconsistent.\n" msgstr "清除弹性组标志将会导致文件系统出现前后不一致的情况。\n" -#: misc/tune2fs.c:1269 +#: misc/tune2fs.c:1217 msgid "" "The huge_file feature may only be cleared when the filesystem is\n" "unmounted or mounted read-only.\n" msgstr "只有当文件系统被卸载,或以只读模式挂载时才能移除其huge_file特性。\n" -#: misc/tune2fs.c:1280 +#: misc/tune2fs.c:1228 msgid "Enabling checksums could take some time." msgstr "启用校验值需要花费一段时间。" -#: misc/tune2fs.c:1282 +#: misc/tune2fs.c:1230 msgid "Cannot enable metadata_csum on a mounted filesystem!\n" msgstr "无法在已挂载的文件系统上启用元数据校验特性!\n" -#: misc/tune2fs.c:1288 -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. Re-run with -O extent to rectify.\n" -msgstr "" -"未启用 extent 特性,所以仅对文件 extent 树进行校验,而不会对块位图进行校验。" -"不启用 extent 将降低元数据校验值的覆盖范围。可以加上参数“-O extents”重新运行" -"来纠正这一问题。\n" +#: misc/tune2fs.c:1236 +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. Re-run with -O extent to rectify.\n" +msgstr "未启用 extent 特性,所以仅对文件 extent 树进行校验,而不会对块位图进行校验。不启用 extent 将降低元数据校验值的覆盖范围。可以加上参数“-O extents”重新运行来纠正这一问题。\n" -#: misc/tune2fs.c:1295 -msgid "" -"64-bit filesystem support is not enabled. The larger fields afforded by " -"this feature enable full-strength checksumming. Run resize2fs -b to " -"rectify.\n" -msgstr "" -"未启用 64 位文件系统支持,将无法使用更大的字段来进行更完整的校验。可以运" -"行“resize2fs -b”来纠正这一问题。\n" +#: misc/tune2fs.c:1243 +msgid "64-bit filesystem support is not enabled. The larger fields afforded by this feature enable full-strength checksumming. Run resize2fs -b to rectify.\n" +msgstr "未启用 64 位文件系统支持,将无法使用更大的字段来进行更完整的校验。可以运行“resize2fs -b”来纠正这一问题。\n" -#: misc/tune2fs.c:1321 +#: misc/tune2fs.c:1269 msgid "Disabling checksums could take some time." msgstr "禁用校验值需要花费一段时间。" -#: misc/tune2fs.c:1323 +#: misc/tune2fs.c:1271 msgid "Cannot disable metadata_csum on a mounted filesystem!\n" msgstr "无法在已挂载的文件系统上禁用元数据校验特性!\n" -#: misc/tune2fs.c:1386 +#: misc/tune2fs.c:1334 #, c-format msgid "Cannot enable 64-bit mode while mounted!\n" msgstr "无法在已挂载的文件系统上启用 64 位模式!\n" -#: misc/tune2fs.c:1396 +#: misc/tune2fs.c:1344 #, c-format msgid "Cannot disable 64-bit mode while mounted!\n" msgstr "无法在已挂载的文件系统上禁用 64 位模式!\n" -#: misc/tune2fs.c:1426 +#: misc/tune2fs.c:1374 #, c-format msgid "Cannot enable project feature; inode size too small.\n" msgstr "" -#: misc/tune2fs.c:1447 +#: misc/tune2fs.c:1395 msgid "" "\n" "Warning: '^quota' option overrides '-Q'arguments.\n" @@ -6443,7 +6491,11 @@ msgstr "" "\n" "警告:“^quota”选项将覆盖“-Q”的参数。\n" -#: misc/tune2fs.c:1465 +#: misc/tune2fs.c:1405 +msgid "Cannot enable encrypt feature on filesystems with the encoding feature enabled.\n" +msgstr "" + +#: misc/tune2fs.c:1419 msgid "" "Setting feature 'metadata_csum_seed' is only supported\n" "on filesystems with the metadata_csum feature enabled.\n" @@ -6451,26 +6503,23 @@ msgstr "" "只有在启用了元数据校验值特性的文件系统才支持\n" "“metadata_csum_seed”特性。\n" -#: misc/tune2fs.c:1483 +#: misc/tune2fs.c:1437 msgid "" -"UUID has changed since enabling metadata_csum. Filesystem must be " -"unmounted \n" +"UUID has changed since enabling metadata_csum. Filesystem must be unmounted \n" "to safely rewrite all metadata to match the new UUID.\n" msgstr "" -"启用元数据校验值特性后UUID被改变。必须卸载文件系统并安全改写所有元数据,以" -"便\n" +"启用元数据校验值特性后UUID被改变。必须卸载文件系统并安全改写所有元数据,以便\n" "与新的 UUID 相匹配。\n" -#: misc/tune2fs.c:1489 -#, fuzzy +#: misc/tune2fs.c:1443 msgid "Recalculating checksums could take some time." -msgstr "启用校验值需要花费一段时间。" +msgstr "重新计算校验值需要花费一段时间。" -#: misc/tune2fs.c:1531 +#: misc/tune2fs.c:1485 msgid "The filesystem already has a journal.\n" msgstr "文件系统已有日志。\n" -#: misc/tune2fs.c:1551 +#: misc/tune2fs.c:1505 #, c-format msgid "" "\n" @@ -6479,21 +6528,21 @@ msgstr "" "\n" "\t尝试打开位于 %s 的日志时\n" -#: misc/tune2fs.c:1555 +#: misc/tune2fs.c:1509 #, c-format msgid "Creating journal on device %s: " msgstr "在设备 %s 上创建日志: " -#: misc/tune2fs.c:1563 +#: misc/tune2fs.c:1517 #, c-format msgid "while adding filesystem to journal on %s" msgstr "将文件系统添加到 %s 上的日志" -#: misc/tune2fs.c:1569 +#: misc/tune2fs.c:1523 msgid "Creating journal inode: " msgstr "创建日志inode: " -#: misc/tune2fs.c:1583 +#: misc/tune2fs.c:1537 msgid "" "\n" "\twhile trying to create journal file" @@ -6501,37 +6550,36 @@ msgstr "" "\n" "\t尝试创建日志文件时" -#: misc/tune2fs.c:1621 +#: misc/tune2fs.c:1575 #, c-format msgid "Cannot enable project quota; inode size too small.\n" msgstr "" -#: misc/tune2fs.c:1634 +#: misc/tune2fs.c:1588 msgid "while initializing quota context in support library" msgstr "初始化支持库中的引用上下文时" -#: misc/tune2fs.c:1649 +#: misc/tune2fs.c:1603 #, c-format msgid "while updating quota limits (%d)" msgstr "更新配额限制(%d)时" -#: misc/tune2fs.c:1657 +#: misc/tune2fs.c:1611 #, c-format msgid "while writing quota file (%d)" msgstr "写入配额文件(%d)时" -#: misc/tune2fs.c:1675 +#: misc/tune2fs.c:1629 #, c-format msgid "while removing quota file (%d)" msgstr "移除配额文件(%d)时" -#: misc/tune2fs.c:1718 +#: misc/tune2fs.c:1672 msgid "" "\n" "Bad quota options specified.\n" "\n" -"Following valid quota options are available (pass by separating with " -"comma):\n" +"Following valid quota options are available (pass by separating with comma):\n" "\t[^]usr[quota]\n" "\t[^]grp[quota]\n" "\t[^]prj[quota]\n" @@ -6548,93 +6596,112 @@ msgstr "" "\n" "\n" -#: misc/tune2fs.c:1776 +#: misc/tune2fs.c:1730 #, c-format msgid "Couldn't parse date/time specifier: %s" msgstr "无法解析日期/时间描述符:%s" -#: misc/tune2fs.c:1801 misc/tune2fs.c:1814 +#: misc/tune2fs.c:1755 misc/tune2fs.c:1768 #, c-format msgid "bad mounts count - %s" msgstr "错误挂载计数 - %s" -#: misc/tune2fs.c:1857 +#: misc/tune2fs.c:1811 #, c-format msgid "bad gid/group name - %s" msgstr "错误的gid/组名 - %s" -#: misc/tune2fs.c:1890 +#: misc/tune2fs.c:1844 #, c-format msgid "bad interval - %s" msgstr "错误的间隔 - %s" -#: misc/tune2fs.c:1919 +#: misc/tune2fs.c:1873 #, c-format msgid "bad reserved block ratio - %s" msgstr "错误的保留块比 - %s" -#: misc/tune2fs.c:1934 +#: misc/tune2fs.c:1888 msgid "-o may only be specified once" msgstr "-o只能被指定一次" -#: misc/tune2fs.c:1943 +#: misc/tune2fs.c:1897 msgid "-O may only be specified once" msgstr "-O只能被指定一次" -#: misc/tune2fs.c:1960 +#: misc/tune2fs.c:1914 #, c-format msgid "bad reserved blocks count - %s" msgstr "错误的保留块数 - %s" -#: misc/tune2fs.c:1989 +#: misc/tune2fs.c:1943 #, c-format msgid "bad uid/user name - %s" msgstr "错误的uid/用户名 - %s" -#: misc/tune2fs.c:2006 +#: misc/tune2fs.c:1960 #, c-format msgid "bad inode size - %s" msgstr "无效的inode大小 - %s" -#: misc/tune2fs.c:2013 +#: misc/tune2fs.c:1967 #, c-format msgid "Inode size must be a power of two- %s" msgstr "Inode 大小必须是2的次方- %s" -#: misc/tune2fs.c:2110 +#: misc/tune2fs.c:2064 #, c-format msgid "mmp_update_interval too big: %lu\n" msgstr "MMP更新间隔太长:%lu\n" -#: misc/tune2fs.c:2115 +#: misc/tune2fs.c:2069 #, c-format msgid "Setting multiple mount protection update interval to %lu second\n" -msgid_plural "" -"Setting multiple mount protection update interval to %lu seconds\n" +msgid_plural "Setting multiple mount protection update interval to %lu seconds\n" msgstr[0] "设置MMP更新间隔为 %lu 秒\n" -#: misc/tune2fs.c:2138 +#: misc/tune2fs.c:2078 +#, c-format +msgid "Setting filesystem error flag to force fsck.\n" +msgstr "设置文件系统错误标志以强制 fsck。\n" + +#: misc/tune2fs.c:2096 #, c-format msgid "Invalid RAID stride: %s\n" msgstr "无效的RAID带宽:%s\n" -#: misc/tune2fs.c:2153 +#: misc/tune2fs.c:2111 #, c-format msgid "Invalid RAID stripe-width: %s\n" msgstr "无效的带宽参数:%s\n" -#: misc/tune2fs.c:2168 +#: misc/tune2fs.c:2126 #, c-format msgid "Invalid hash algorithm: %s\n" msgstr "无效的hash算法:%s\n" -#: misc/tune2fs.c:2174 +#: misc/tune2fs.c:2132 #, c-format msgid "Setting default hash algorithm to %s (%d)\n" msgstr "将默认hash算法设置为 %s (%d)\n" -#: misc/tune2fs.c:2193 +#: misc/tune2fs.c:2151 #, fuzzy +#| msgid "" +#| "\n" +#| "Bad options specified.\n" +#| "\n" +#| "Extended options are separated by commas, and may take an argument which\n" +#| "\tis set off by an equals ('=') sign.\n" +#| "\n" +#| "Valid extended options are:\n" +#| "\tclear_mmp\n" +#| "\thash_alg=<hash algorithm>\n" +#| "\tmount_opts=<extended default mount options>\n" +#| "\tstride=<RAID per-disk chunk size in blocks>\n" +#| "\tstripe_width=<RAID stride*data disks in blocks>\n" +#| "\ttest_fs\n" +#| "\t^test_fs\n" msgid "" "\n" "Bad options specified.\n" @@ -6649,6 +6716,7 @@ msgid "" "\tmmp_update_interval=<mmp update interval in seconds>\n" "\tstride=<RAID per-disk chunk size in blocks>\n" "\tstripe_width=<RAID stride*data disks in blocks>\n" +"\tforce_fsck\n" "\ttest_fs\n" "\t^test_fs\n" msgstr "" @@ -6666,31 +6734,31 @@ msgstr "" "\ttest_fs\n" "\t^test_fs\n" -#: misc/tune2fs.c:2663 +#: misc/tune2fs.c:2622 msgid "Failed to read inode bitmap\n" msgstr "读取inode位图失败\n" -#: misc/tune2fs.c:2668 +#: misc/tune2fs.c:2627 msgid "Failed to read block bitmap\n" msgstr "读取块位图失败\n" -#: misc/tune2fs.c:2685 resize/resize2fs.c:1277 +#: misc/tune2fs.c:2644 resize/resize2fs.c:1277 msgid "blocks to be moved" msgstr "需要移动的块" -#: misc/tune2fs.c:2688 +#: misc/tune2fs.c:2647 msgid "Failed to allocate block bitmap when increasing inode size\n" msgstr "增加inode大小时为分配块位图失败\n" -#: misc/tune2fs.c:2694 +#: misc/tune2fs.c:2653 msgid "Not enough space to increase inode size \n" msgstr "没有足够的空间用于增加inode大小\n" -#: misc/tune2fs.c:2699 +#: misc/tune2fs.c:2658 msgid "Failed to relocate blocks during inode resize \n" msgstr "改变块大小时重定位块失败 \n" -#: misc/tune2fs.c:2731 +#: misc/tune2fs.c:2690 msgid "" "Error in resizing the inode size.\n" "Run e2undo to undo the file system changes. \n" @@ -6698,7 +6766,7 @@ msgstr "" "改变inode大小时出错。\n" "请运行e2undo来撤销对文件系统的更改。\n" -#: misc/tune2fs.c:2936 +#: misc/tune2fs.c:2900 msgid "" "If you are sure the filesystem is not in use on any node, run:\n" "'tune2fs -f -E clear_mmp {device}'\n" @@ -6706,7 +6774,7 @@ msgstr "" "如果你确定文件系统并没有挂载到任何节点上,请运行:\n" "“tune2fs -f -E clear_mmp {设备}”\n" -#: misc/tune2fs.c:2943 +#: misc/tune2fs.c:2907 #, c-format msgid "" "MMP block magic is bad. Try to fix it by running:\n" @@ -6715,29 +6783,29 @@ msgstr "" "MMP块幻数错误。请尝试运行一下命令来修复:\n" "“e2fsck -f %s”\n" -#: misc/tune2fs.c:2955 +#: misc/tune2fs.c:2919 msgid "Cannot modify a journal device.\n" msgstr "无法修改日志设备。\n" -#: misc/tune2fs.c:2968 +#: misc/tune2fs.c:2932 #, c-format msgid "The inode size is already %lu\n" msgstr "inode大小已经为 %lu\n" -#: misc/tune2fs.c:2975 +#: misc/tune2fs.c:2939 msgid "Shrinking inode size is not supported\n" msgstr "不支持缩小inode大小\n" -#: misc/tune2fs.c:2980 +#: misc/tune2fs.c:2944 #, c-format msgid "Invalid inode size %lu (max %d)\n" msgstr "无效的inode大小 %lu(最大 %d)\n" -#: misc/tune2fs.c:2986 +#: misc/tune2fs.c:2950 msgid "Resizing inodes could take some time." msgstr "改变 inode 大小需要花费一段时间。" -#: misc/tune2fs.c:3034 +#: misc/tune2fs.c:2998 #, c-format msgid "" "Warning: The journal is dirty. You may wish to replay the journal like:\n" @@ -6753,57 +6821,57 @@ msgstr "" "\n" "然后重新运行本命令。否则,任何所做更改都可能被日志恢复操作所覆盖。\n" -#: misc/tune2fs.c:3045 +#: misc/tune2fs.c:3009 #, c-format msgid "Recovering journal.\n" msgstr "正在修复日志。\n" -#: misc/tune2fs.c:3063 +#: misc/tune2fs.c:3028 #, c-format msgid "Setting maximal mount count to %d\n" msgstr "设置最大挂载次数为 %d\n" -#: misc/tune2fs.c:3069 +#: misc/tune2fs.c:3034 #, c-format msgid "Setting current mount count to %d\n" msgstr "设置当前挂载次数为 %d\n" -#: misc/tune2fs.c:3074 +#: misc/tune2fs.c:3039 #, c-format msgid "Setting error behavior to %d\n" msgstr "将出错行为设置为 %d\n" -#: misc/tune2fs.c:3079 +#: misc/tune2fs.c:3044 #, c-format msgid "Setting reserved blocks gid to %lu\n" msgstr "设置保留块的gid为 %lu\n" -#: misc/tune2fs.c:3084 +#: misc/tune2fs.c:3049 #, c-format msgid "interval between checks is too big (%lu)" msgstr "检查间隔太长(%lu)" -#: misc/tune2fs.c:3091 +#: misc/tune2fs.c:3056 #, c-format msgid "Setting interval between checks to %lu seconds\n" msgstr "将检查间隔设置为 %lu 秒\n" -#: misc/tune2fs.c:3098 +#: misc/tune2fs.c:3063 #, c-format msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n" msgstr "将保留块所占百分比设置为 %g%%(%llu 个块)\n" -#: misc/tune2fs.c:3104 +#: misc/tune2fs.c:3069 #, c-format msgid "reserved blocks count is too big (%llu)" msgstr "保留块的数量太大(%llu)" -#: misc/tune2fs.c:3111 +#: misc/tune2fs.c:3076 #, c-format msgid "Setting reserved blocks count to %llu\n" msgstr "设置保留块数为 %llu\n" -#: misc/tune2fs.c:3116 +#: misc/tune2fs.c:3081 msgid "" "\n" "The filesystem already has sparse superblocks.\n" @@ -6811,7 +6879,7 @@ msgstr "" "\n" "文件系统已经含有分散式超级块\n" -#: misc/tune2fs.c:3119 +#: misc/tune2fs.c:3084 msgid "" "\n" "Setting the sparse superblock flag not supported\n" @@ -6822,7 +6890,7 @@ msgstr "" "超级块标志。\n" "\n" -#: misc/tune2fs.c:3129 +#: misc/tune2fs.c:3094 #, c-format msgid "" "\n" @@ -6831,7 +6899,7 @@ msgstr "" "\n" "已设置分散式超级块标志。 %s" -#: misc/tune2fs.c:3134 +#: misc/tune2fs.c:3099 msgid "" "\n" "Clearing the sparse superblock flag not supported.\n" @@ -6839,115 +6907,109 @@ msgstr "" "\n" "移除不被支持的分散式超级块标志。\n" -#: misc/tune2fs.c:3142 +#: misc/tune2fs.c:3107 #, c-format msgid "Setting time filesystem last checked to %s\n" msgstr "设置上一次检查的时间为 %s\n" -#: misc/tune2fs.c:3148 +#: misc/tune2fs.c:3113 #, c-format msgid "Setting reserved blocks uid to %lu\n" msgstr "设置保留块的uid为 %lu\n" -#: misc/tune2fs.c:3180 +#: misc/tune2fs.c:3145 msgid "Error in using clear_mmp. It must be used with -f\n" msgstr "clear_mmp选项使用错误,必须和 -f 选项一起使用\n" -#: misc/tune2fs.c:3198 -msgid "" -"The quota feature may only be changed when the filesystem is unmounted.\n" +#: misc/tune2fs.c:3163 +msgid "The quota feature may only be changed when the filesystem is unmounted.\n" msgstr "只有当文件系统被卸载时才能修改配额特性。\n" -#: misc/tune2fs.c:3222 +#: misc/tune2fs.c:3181 +msgid "Setting the UUID on this filesystem could take some time." +msgstr "在此文件系统上设置 UUID 需要花费一段时间。" + +#: misc/tune2fs.c:3196 msgid "The UUID may only be changed when the filesystem is unmounted.\n" msgstr "只有当文件系统被卸载时才能改变UUID。\n" -#: misc/tune2fs.c:3225 -msgid "" -"If you only use kernels newer than v4.4, run 'tune2fs -O metadata_csum_seed' " -"and re-run this command.\n" -msgstr "" -"若您仅使用 Linux 4.4 以上的内核,请运行“tune2fs -O metadata_csum_seed”,然后" -"重新运行此命了。\n" - -#: misc/tune2fs.c:3234 -msgid "Setting UUID on a checksummed filesystem could take some time." -msgstr "在启用了校验值的文件系统上设置 UUID 需要花费一段时间。" +#: misc/tune2fs.c:3199 +msgid "If you only use kernels newer than v4.4, run 'tune2fs -O metadata_csum_seed' and re-run this command.\n" +msgstr "若您仅使用 Linux 4.4 以上的内核,请运行“tune2fs -O metadata_csum_seed”,然后重新运行此命令。\n" -#: misc/tune2fs.c:3259 +#: misc/tune2fs.c:3229 msgid "Invalid UUID format\n" msgstr "无效的 UUID 格式\n" -#: misc/tune2fs.c:3275 +#: misc/tune2fs.c:3245 msgid "Need to update journal superblock.\n" msgstr "需要更新日志超级块。\n" -#: misc/tune2fs.c:3301 +#: misc/tune2fs.c:3267 msgid "The inode size may only be changed when the filesystem is unmounted.\n" msgstr "只有当文件系统被卸载时才能改变inode大小。\n" -#: misc/tune2fs.c:3308 +#: misc/tune2fs.c:3274 msgid "" "Changing the inode size not supported for filesystems with the flex_bg\n" "feature enabled.\n" msgstr "启用了弹性组特性的文件系统不支持改变inode大小\n" -#: misc/tune2fs.c:3326 +#: misc/tune2fs.c:3292 #, c-format msgid "Setting inode size %lu\n" msgstr "正在将inode大小设置为 %lu\n" -#: misc/tune2fs.c:3330 +#: misc/tune2fs.c:3296 msgid "Failed to change inode size\n" msgstr "改变inode大小失败 \n" -#: misc/tune2fs.c:3344 +#: misc/tune2fs.c:3310 #, c-format msgid "Setting stride size to %d\n" msgstr "设置步长为 %d\n" -#: misc/tune2fs.c:3349 +#: misc/tune2fs.c:3315 #, c-format msgid "Setting stripe width to %d\n" msgstr "设置带宽为 %d\n" -#: misc/tune2fs.c:3356 +#: misc/tune2fs.c:3322 #, c-format msgid "Setting extended default mount options to '%s'\n" msgstr "设置默认挂载的扩展选项为 “%s”\n" -#: misc/util.c:100 +#: misc/util.c:101 msgid "<proceeding>\n" msgstr "<处理中>\n" -#: misc/util.c:104 -#, fuzzy, c-format +#: misc/util.c:105 +#, c-format msgid "Proceed anyway (or wait %d seconds to proceed) ? (y,N) " -msgstr "无论如何也要继续(或等待 %d 秒)?(y,n) " +msgstr "无论如何也要继续(或等待 %d 秒)?(y,N) " -#: misc/util.c:108 -#, fuzzy +#: misc/util.c:109 msgid "Proceed anyway? (y,N) " -msgstr "无论如何也要继续?(y,n) " +msgstr "无论如何也要继续?(y,N) " -#: misc/util.c:133 +#: misc/util.c:136 msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n" msgstr "强制执行mke2fs。期望/etc/mtab中反映的并非真实情况。\n" -#: misc/util.c:138 +#: misc/util.c:141 #, c-format msgid "will not make a %s here!\n" msgstr "取消建立 %s !\n" -#: misc/util.c:145 +#: misc/util.c:148 msgid "mke2fs forced anyway.\n" msgstr "mke2fs 强制执行。\n" -#: misc/util.c:161 +#: misc/util.c:164 msgid "Couldn't allocate memory to parse journal options!\n" msgstr "无法为解析日志选项获取内存!\n" -#: misc/util.c:186 +#: misc/util.c:189 #, c-format msgid "" "\n" @@ -6956,7 +7018,7 @@ msgstr "" "\n" "无法找到匹配 %s 的日志设备\n" -#: misc/util.c:213 +#: misc/util.c:216 msgid "" "\n" "Bad journal options specified.\n" @@ -6986,7 +7048,7 @@ msgstr "" "日志尺寸必须介于1024至10240000个块之间(块的大小由文件系统决定)。\n" "\n" -#: misc/util.c:244 +#: misc/util.c:247 msgid "" "\n" "Filesystem too small for a journal\n" @@ -6994,7 +7056,7 @@ msgstr "" "\n" "文件系统太小,无法容纳日志\n" -#: misc/util.c:251 +#: misc/util.c:254 #, c-format msgid "" "\n" @@ -7005,7 +7067,7 @@ msgstr "" "给定的日志大小为 %d 个块;但该值必须\n" "介于1024至10240000块之间。终止执行。\n" -#: misc/util.c:259 +#: misc/util.c:262 msgid "" "\n" "Journal size too big for filesystem.\n" @@ -7013,7 +7075,7 @@ msgstr "" "\n" "日志大小超过文件系统自身。\n" -#: misc/util.c:273 +#: misc/util.c:276 #, c-format msgid "" "This filesystem will be automatically checked every %d mounts or\n" @@ -7165,14 +7227,12 @@ msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n" msgstr "#\t数量=%llu,大小=%llu,指针=%llu,按序=%llu\n" #: resize/main.c:49 -#, fuzzy, c-format +#, c-format msgid "" -"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [-b|-s|new_size] " -"[-S RAID-stride] [-z undo_file]\n" +"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [-b|-s|new_size] [-S RAID-stride] [-z undo_file]\n" "\n" msgstr "" -"用法:%s [-d 调试标志] [-f] [-F] [-M] [-P] [-p] 设备 [-b|-s|新大小] [-z 撤销" -"文件]\n" +"用法:%s [-d 调试标志] [-f] [-F] [-M] [-P] [-p] 设备 [-b|-s|新大小] [S RAID-stride] [-z 撤销文件]\n" "\n" #: resize/main.c:73 @@ -7276,9 +7336,7 @@ msgstr "无法设置/取消设置 64 位特性。\n" #: resize/main.c:575 #, c-format -msgid "" -"Cannot change the 64bit feature on a filesystem that is larger than 2^32 " -"blocks.\n" +msgid "Cannot change the 64bit feature on a filesystem that is larger than 2^32 blocks.\n" msgstr "无法在含有超过 2^32 个块的文件系统上改变 64 位特性。\n" #: resize/main.c:581 @@ -7288,9 +7346,7 @@ msgstr "无法在已挂载的文件系统上改变 64 位特性。\n" #: resize/main.c:587 #, c-format -msgid "" -"Please enable the extents feature with tune2fs before enabling the 64bit " -"feature.\n" +msgid "Please enable the extents feature with tune2fs before enabling the 64bit feature.\n" msgstr "在启用 64 位特性前,请先执行 tune2fs 来启用 extent。\n" #: resize/main.c:593 @@ -7420,15 +7476,13 @@ msgstr "尝试添加组 #%d 时" #: resize/online.c:288 #, c-format -msgid "" -"Filesystem at %s is mounted on %s, and on-line resizing is not supported on " -"this system.\n" +msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n" msgstr "文件系统 %s 被挂载在 %s,并且这个系统不支持在线调整大小。\n" #: resize/resize2fs.c:759 -#, fuzzy, c-format +#, c-format msgid "inodes (%llu) must be less than %u\n" -msgstr "inode数(%llu)必须小于 %u32" +msgstr "inode数(%llu)必须小于 %u\n" #: resize/resize2fs.c:1038 msgid "reserved blocks" @@ -7438,26 +7492,25 @@ msgstr "保留块" msgid "meta-data blocks" msgstr "元数据块" -#: resize/resize2fs.c:1386 resize/resize2fs.c:2475 +#: resize/resize2fs.c:1386 resize/resize2fs.c:2421 msgid "new meta blocks" msgstr "新的元数据块" -#: resize/resize2fs.c:2698 +#: resize/resize2fs.c:2644 msgid "Should never happen! No sb in last super_sparse bg?\n" msgstr "不应当出现的情况:最后一个分散式超级块块组中没有超级块!\n" -#: resize/resize2fs.c:2703 +#: resize/resize2fs.c:2649 msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n" msgstr "不应当出现的情况:分散式超级块块组中有未预期的old_desc!\n" -#: resize/resize2fs.c:2776 +#: resize/resize2fs.c:2722 msgid "Should never happen: resize inode corrupt!\n" msgstr "不应出现的错误:改变inode大小时发现有数据损坏!\n" #: lib/ext2fs/ext2_err.c:11 -#, fuzzy -msgid "EXT2FS Library version 1.44.4" -msgstr "EXT2FS 库版本 1.43" +msgid "EXT2FS Library version 1.45.3" +msgstr "EXT2FS 库版本 1.45.3" #: lib/ext2fs/ext2_err.c:12 msgid "Wrong magic number for ext2_filsys structure" @@ -8016,9 +8069,8 @@ msgid "MMP: device currently active" msgstr "MMP:设备当前为活动状态" #: lib/ext2fs/ext2_err.c:151 -#, fuzzy msgid "MMP: e2fsck being run" -msgstr "MMP:fsck正在运行" +msgstr "MMP:e2fsck 正在运行" #: lib/ext2fs/ext2_err.c:152 msgid "MMP: block number beyond filesystem range" @@ -8073,13 +8125,12 @@ msgid "Unknown checksum algorithm" msgstr "位置的校验值算法" #: lib/ext2fs/ext2_err.c:165 -#, fuzzy msgid "MMP block checksum does not match" -msgstr "MMP块校验值与MMP块自身不符" +msgstr "MMP 块校验值不符" #: lib/ext2fs/ext2_err.c:166 msgid "Ext2 file already exists" -msgstr "ext2文件已存在" +msgstr "Ext2 文件已存在" #: lib/ext2fs/ext2_err.c:167 msgid "Block bitmap checksum does not match bitmap" @@ -8166,9 +8217,8 @@ msgid "The journal superblock is corrupt" msgstr "日志超级块已损坏" #: lib/ext2fs/ext2_err.c:188 -#, fuzzy msgid "Inode is corrupted" -msgstr "改变inode大小时有数据损坏" +msgstr "Inode 已损坏" #: lib/ext2fs/ext2_err.c:189 msgid "Inode containing extended attribute value is corrupted" @@ -8364,46 +8414,14 @@ msgstr " %s 有一个 %s 文件系统\n" #: lib/support/plausible.c:276 #, c-format msgid "%s contains `%s' data\n" -msgstr "" -" %s 含有“%s”数据\n" -"\n" - -#~ msgid "" -#~ "\n" -#~ "*** Checksum errors detected in filesystem! Run e2fsck now!\n" -#~ "\n" -#~ msgstr "" -#~ "\n" -#~ "*** 发现文件系统的校验值有误!请立即运行 e2fsck!\n" -#~ "\n" - -#~ msgid "" -#~ "\n" -#~ "*** Checksum errors detected in bitmaps! Run e2fsck now!\n" -#~ "\n" -#~ msgstr "" -#~ "\n" -#~ "*** 发现位图的校验值有误!请立即运行 e2fsck!\n" -#~ "\n" - -#~ msgid "" -#~ "\n" -#~ "%s: %s: error reading bitmaps: %s\n" -#~ msgstr "" -#~ "\n" -#~ "%s:%s:读取位图错误:%s\n" - -#, fuzzy -#~ msgid "" -#~ "\n" -#~ "Warning, had trouble writing out superblocks.\n" -#~ msgstr "" -#~ "\n" -#~ "警告:写入超级块时遇到问题" +msgstr "%s 含有“%s”数据\n" #~ msgid "i_dir_acl @F %Id, @s zero.\n" #~ msgstr "@i %i (%Q)的i_dir_acl为 %ld,@s0。\n" +#~ msgid "while opening directory \"%s\"" +#~ msgstr "打开目录“%s”时" + #~ msgid "Journal features: " #~ msgstr "日志特性:: " @@ -8452,6 +8470,38 @@ msgstr "" #~ msgid "Journal users: %s\n" #~ msgstr "日志使用者: %s\n" +#~ msgid "" +#~ "\n" +#~ "*** Checksum errors detected in filesystem! Run e2fsck now!\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "*** 发现文件系统的校验值有误!请立即运行 e2fsck!\n" +#~ "\n" + +#~ msgid "" +#~ "\n" +#~ "*** Checksum errors detected in bitmaps! Run e2fsck now!\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "*** 发现位图的校验值有误!请立即运行 e2fsck!\n" +#~ "\n" + +#~ msgid "" +#~ "\n" +#~ "%s: %s: error reading bitmaps: %s\n" +#~ msgstr "" +#~ "\n" +#~ "%s:%s:读取位图错误:%s\n" + +#~ msgid "" +#~ "\n" +#~ "Warning, had trouble writing out superblocks." +#~ msgstr "" +#~ "\n" +#~ "警告:写入超级块时遇到问题" + #~ msgid "Please run e2fsck on the filesystem.\n" #~ msgstr "请在这个文件系统上运行 e2fsck。\n" @@ -8540,12 +8590,8 @@ msgstr "" #~ msgid "Could not stat %s --- %s\n" #~ msgstr "无法对 %s 进行 stat 调用 --- %s\n" -#~ msgid "" -#~ "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/" -#~ "s \n" -#~ msgstr "" -#~ "\b\b\b\b\b\b\b\b已复制 %llu / %llu 块(%llu%%),用时 %s,速度 %.2f MB/" -#~ "s \n" +#~ msgid "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/s \n" +#~ msgstr "\b\b\b\b\b\b\b\b已复制 %llu / %llu 块(%llu%%),用时 %s,速度 %.2f MB/s \n" #~ msgid "" #~ "\n" diff --git a/scrub/e2scrub.in b/scrub/e2scrub.in index b778a92a9..f21499b69 100644 --- a/scrub/e2scrub.in +++ b/scrub/e2scrub.in @@ -201,7 +201,7 @@ mark_corrupt() { setup() { # Try to remove snapshot for 30s, bail out if we can't remove it. - lveremove_deadline="$(( $(date "+%s") + 30))" + lvremove_deadline="$(( $(date "+%s") + 30))" ${DBG} lvremove -f "${LVM2_VG_NAME}/${snap}" 2>/dev/null while [ -e "${snap_dev}" ] && [ "$?" -eq "5" ] && [ "$(date "+%s")" -lt "${lvremove_deadline}" ]; do diff --git a/util/gcc-wall-cleanup b/util/gcc-wall-cleanup deleted file mode 100644 index cef7a2dcf..000000000 --- a/util/gcc-wall-cleanup +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sed -f -# -# This script filters out gcc-wall crud that we're not interested in seeing. -# -/^cc /d -/^kcc /d -/^gcc /d -/does not support `long long'/d -/forbids long long integer constants/d -/does not support the `ll' length modifier/d -/does not support the `ll' printf length modifier/d -/ANSI C forbids long long integer constants/d -/traditional C rejects string concatenation/d -/integer constant is unsigned in ANSI C, signed with -traditional/d -/ISO C forbids conversion of object pointer to function pointer type/,+2d -/ISO C does not support ‘__FUNCTION__’ predefined identifier/d -/At top level:/d -/In file included from/d -/In function `.*':/d -/zero-length format string/d -/warning: (near initialization for/d -/^[ ]*from/d - diff --git a/util/static-analysis-cleanup b/util/static-analysis-cleanup deleted file mode 100644 index 674925979..000000000 --- a/util/static-analysis-cleanup +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sed -f -# -# This script filters out gcc-wall crud that we're not interested in seeing. -# -/^cc /d -/^kcc /d -/^gcc /d -/does not support `long long'/d -/forbids long long integer constants/d -/does not support the `ll' length modifier/d -/does not support the `ll' printf length modifier/d -/ANSI C forbids long long integer constants/d -/traditional C rejects string concatenation/d -/integer constant is unsigned in ANSI C, signed with -traditional/d -/warning: missing initializer/d -/warning: (near initialization for/d -/^[ ]*from/d -/unused parameter/d -/e2_types.h" not found.$/d -/e2_bitops.h" not found.$/d |