aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2020-01-02 10:59:13 -0500
committerTheodore Ts'o <tytso@mit.edu>2020-01-02 10:59:13 -0500
commit32d33132a8174b22bffea3a59cecd2f3e835afe9 (patch)
tree79360bb5d66e8cc804e9a2e955ba6834a7b2bd94
parentc9a8c53b17ccc4543509d55ff3b343ddbfe805e5 (diff)
parentc52d930f3ffbc19fa248d53daa171436ac391bb5 (diff)
downloade2fsprogs-32d33132a8174b22bffea3a59cecd2f3e835afe9.tar.gz
Merge branch 'maint' into next
-rw-r--r--MCONFIG.in7
-rwxr-xr-x[-rw-r--r--]config/config.guess361
-rwxr-xr-x[-rw-r--r--]config/config.sub2466
-rw-r--r--contrib/android/base_fs.c11
-rw-r--r--contrib/android/base_fs.h3
-rw-r--r--contrib/android/basefs_allocator.c256
-rw-r--r--contrib/android/basefs_allocator.h2
-rw-r--r--contrib/android/block_list.c25
-rw-r--r--contrib/android/block_range.c46
-rw-r--r--contrib/android/block_range.h17
-rw-r--r--contrib/android/e2fsdroid.c3
-rw-r--r--debian/compat2
-rw-r--r--e2fsck/extents.c15
-rw-r--r--e2fsck/pass1.c3
-rw-r--r--e2fsck/pass1b.c4
-rw-r--r--e2fsck/pass2.c5
-rw-r--r--e2fsck/rehash.c32
-rw-r--r--e2fsck/super.c4
-rw-r--r--lib/Android.bp1
-rw-r--r--lib/ext2fs/blknum.c19
-rw-r--r--lib/ext2fs/ext2fs.h8
-rw-r--r--lib/ext2fs/ext_attr.c4
-rw-r--r--lib/ext2fs/inode_io.c12
-rw-r--r--lib/ext2fs/qcow2.c10
-rw-r--r--lib/support/mkquota.c4
-rw-r--r--lib/uuid/Android.bp1
-rw-r--r--misc/create_inode.c2
-rw-r--r--misc/e2image.8.in7
-rw-r--r--misc/e2image.c6
-rw-r--r--misc/fuse2fs.c55
-rw-r--r--misc/mke2fs.c2
-rw-r--r--po/ms.po159
-rw-r--r--po/zh_CN.po2650
-rw-r--r--scrub/e2scrub.in2
-rw-r--r--util/gcc-wall-cleanup23
-rw-r--r--util/static-analysis-cleanup20
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(&params->entry.head, &params->entry.tail,
- blocknr, blocknr);
+ add_blocks_to_range(&params->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(&params->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(&params->entry.head, &params->entry.tail,
- blocknr, blocknr);
+ if (params->filename && !metadata)
+ add_blocks_to_range(&params->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(&params->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);
}
diff --git a/po/ms.po b/po/ms.po
index 4269dcbc8..ebee449cc 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -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