Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 103090 Details for
Bug 156697
Patch e2fsprogs for ext4
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
e2fsprogs-1.39-ext4-head_20060918.patch
e2fsprogs-1.39-ext4-head_20060918.patch (text/plain), 337.30 KB, created by
Conrad Kostecki
on 2006-12-01 00:48:52 UTC
(
hide
)
Description:
e2fsprogs-1.39-ext4-head_20060918.patch
Filename:
MIME Type:
Creator:
Conrad Kostecki
Created:
2006-12-01 00:48:52 UTC
Size:
337.30 KB
patch
obsolete
>diff between e2fsprogs-1.39 and mercurial snapshot from sep 19, 2006 > >Index: e2fsprogs-1.39/.hg/hgrc >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/.hg/hgrc 2006-09-18 17:42:57.000000000 +0200 >@@ -0,0 +1,2 @@ >+[paths] >+default = http://thunk.org/hg/e2fsprogs >Index: e2fsprogs-1.39/.hgignore >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/.hgignore 2006-09-18 17:42:57.000000000 +0200 >@@ -0,0 +1,7 @@ >+^autom4te.cache >+^build >+^FILES >+^core >+~$ >+^.pc >+^patches >Index: e2fsprogs-1.39/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/ChangeLog 2006-05-14 23:15:12.000000000 +0200 >+++ e2fsprogs-1.39/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,16 @@ >+2006-09-12 Theodore Tso <tytso@mit.edu> >+ >+ * e2fsprogs.spec.in (Group): Use License tag instead of Copyright, >+ and specify GPLv2 >+ >+2006-09-11 Theodore Tso <tytso@mit.edu> >+ >+ * e2fsprogs.spec.in: Remove duplicate entry in the .spec file >+ >+2006-08-06 Theodore Tso <tytso@mit.edu> >+ >+ * configure.in: Add test to see if diff supports the -u option >+ > 2006-04-09 Theodore Ts'o <tytso@mit.edu> > > * config/config.guess, config/config.sub: Update to newer versions >Index: e2fsprogs-1.39/MCONFIG.in >=================================================================== >--- e2fsprogs-1.39.orig/MCONFIG.in 2006-03-23 02:19:19.000000000 +0100 >+++ e2fsprogs-1.39/MCONFIG.in 2006-09-18 17:42:57.000000000 +0200 >@@ -33,7 +33,7 @@ datadir = @datadir@ > > CC = @CC@ > BUILD_CC = @BUILD_CC@ >-DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ >+DEFS = -DLOCALEDIR=\"$(localedir)\" -DROOT_SYSCONFDIR=\"$(root_sysconfdir)\" @DEFS@ > CFLAGS = @CFLAGS@ > CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib @CPPFLAGS@ > INTL_FLAGS = @INTL_FLAGS@ >Index: e2fsprogs-1.39/Makefile.in >=================================================================== >--- e2fsprogs-1.39.orig/Makefile.in 2006-04-09 04:16:26.000000000 +0200 >+++ e2fsprogs-1.39/Makefile.in 2006-09-18 17:42:57.000000000 +0200 >@@ -29,6 +29,9 @@ subs: > progs: subs all-progs-recursive > libs: subs all-libs-recursive > >+rpm: >+ sh contrib/build-rpm >+ > docs: > -@test -d doc && cd doc && $(MAKE) libext2fs.info > >Index: e2fsprogs-1.39/README.subset >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/README.subset 2006-09-18 17:42:57.000000000 +0200 >@@ -0,0 +1,15 @@ >+This distribution contains a subset of the e2fsprogs package; it >+contains the base libraries (ss, et, uuid, blkid) which may be used by >+other non-ext2-releated applications. >+ >+This may be useful for non-Linux operating systems that need these >+libraries for GNOME, but who do not need the ext2/ext3 filesystem >+utilities. >+ >+The full e2fsprogs distributions can be found at the e2fsprogs web >+page, which is: >+ >+ http://e2fsprogs.sourceforge.net >+ >+In case of bugs in these libraries, please contact Ted Ts'o at >+tytso@thunk.org or tytso@alum.mit.edu. >Index: e2fsprogs-1.39/TODO >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/TODO 2006-09-18 17:42:57.000000000 +0200 >@@ -0,0 +1,277 @@ >+Need to process the bad block inode *before* doing the inode scan. >+ >+Also check to see if the first block of the inode table is not on the >+bad block scan, and fix that. We need to check for an inaccurate >+blocks, and fix them before we start doing anything else with the >+filesystem! >+ >+--------------------------------------------------- >+User request: >+ >+BTW: Could you please add some sort of deleted and possibly corrupted file >+ and inode list to e2fsck report. There should be filenames deleted >+ from directory inodes, files with duplicate blocks e.t.c. >+ It's pretty annoying to filter this information from e2fsck output >+ by hand :- >+ >+------------------------------------------ >+ >+Add a "answer Yes always to this class of question" response. >+ >+---------------------------------- >+ >+ext2fs_flush() should return a different error message for primary >+versus backup superblock flushing, so that mke2fs can print an >+appropriate error message. >+ >+--------------------------------- >+Date: Mon, 08 Mar 1999 21:46:14 +0100 >+From: Sergio Polini <s.polini@mclink.it> >+ >+ >+I'm reading the sorce code of e2fsck 1.14. >+In pass2.c, lines 352-357, I read: >+ >+if ((dirent->name_len & 0xFF) > EXT2_NAME_LEN) { >+ if (fix_problem(ctx, PR_2_FILENAME_LONG, &cd->pctx)) { >+ dirent->name_len = EXT2_NAME_LEN; >+ dir_modified++; >+ } >+} >+ >+I think that I'll never see any messages about too long filenames, >+because "whatever & 0xFF" can never be "> 0xFF". >+Am I wrong? >+-------------------------------------- >+ >+Add chmod command to debugfs. >+ >+------------------------------------------ >+ >+Date: Tue, 18 Jan 2000 17:54:53 -0800 (PST) >+From: Alan Blanchard <alan@abraxas.to> >+To: tytso@MIT.EDU >+Subject: DEBUGFS - thanks and a feature idea >+Content-Type: TEXT/PLAIN; charset=US-ASCII >+ >+Theodore: >+ >+First, let me thank you for writing debugfs. Recently, my Linux box >+(RH 6.0, 400 MHz PIII, on a DSL line) was hacked into. The intruder did >+an "rm -Rf" on a 34 GB drive with about 5GB of data on it. I was able to >+restore essentially the entire thing with debugfs and a bit of C code and Perl. >+Actually, I could have done the entire thing with debugfs and Perl, but I >+thought it would be too slow. >+ >+During this exercise, I noticed that one small feature was lacking that would >+have made my job a bit easier. The length of a deleted directory is >+reported as 0, hence debugfs won't dump the contents of the directory to a >+file using the "dump" command. The only thing that saved me was that the >+list of disk blocks is not zeroed out. I was able to dump the contents of the >+directories by using debugfs to get the relevant block numbers, then >+using dd to get the actual data. >+ >+If debugfs had a feature where it ignored the size of a directory reported by >+the inode and instead just dumped all the blocks, it would have facilited >+things a bit. This seems like a very easy feature to add. >+ >+Again, thanks for writing debugfs (and all the other Linux stuff you've written!). >+ >+Cheers, >+Alan Blanchard >+alan@abraxas.to >+ >+ >+------------------------------------------------------------------- >+ >+Date: Fri, 21 Jan 2000 14:07:12 -0800 >+From: "H. Peter Anvin" <hpa@www.transmeta.com> >+Subject: mkfs -cc and fsck -c >+ >+b) An option to mkfs to zero the partition. Yes, it can be done with >+dd, but it would be a nicer way of doing it. >+ >+------------------------------------------------------------------ >+ >+Add support for in ext2fs_block_iterate() for a returning the >+compressed flag blocks to block_iterate. Change default to not return >+EXT2_COMPRESSED_BLKADDR. Change e2fsck to pass this flag in. >+ >+(The old compression patches did this by default all the time, which >+is bad, since it meant e2fsck never saw the EXT2_COMPRESSED_BLKADDR >+flagword. >+ >+------------------------------------------------------------ >+ >+E2fsck should offer to clear all the blocks in an indirect block, not >+the entire inode, so there's better recovery for when an indirect >+block gets trashed. >+ >+ >+------------------------------------------------------------- >+ >+From: Yann Dirson - LOGATIQUE <Yann.Dirson@France.Sun.COM> >+Date: Thu, 2 Mar 2000 13:52:13 +0100 (MET) >+ >+During my experiments on the broken system, I noticed the following in >+the badblocks program (which I'm aware is not designed for IDE drives) >+- I'd probably have already fixed them if my home system was up :( >+ >+* the syntax summary documents 2nd arg as blocks_count, which should >+probably read something like end_count. >+ >+* testing past end of device is not detected, and lists those blocks >+as bad, whereas they simply do not exist. >+ >+ >+I think I'll probably add a "max count" option to findsuper(8), so >+that I do not have to wait for the whole disk to be scanned when the >+system had to be launched with "init=/bin/sh", in which case Ctrl-[CZ] >+and friends appear to be absolutely ignored. >+ >+ >+Somewhat unrelated, I just noticed the >+http://web.mit.edu/tytso/www/linux/ext2.html could be updated: >+ >+- could mention SGI xfs (http://oss.sgi.com/projects/xfs/ - they just >+ release 0.03 snapshot) >+ >+---------------------------------------------------------------- >+ >+Return-Path: <tytso@MIT.EDU> >+Date: Thu, 10 Feb 2000 13:20:14 -0500 >+From: "Theodore Y. Ts'o" <tytso@MIT.EDU> >+To: R.E.Wolff@BitWizard.nl >+In-Reply-To: Rogier Wolff's message of Thu, 10 Feb 2000 08:46:30 +0100 (MET), >+ <200002100746.IAA24573@cave.bitwizard.nl> >+Subject: Re: e2fsck request for enhancement. >+Phone: (781) 391-3464 >+ >+ Date: Thu, 10 Feb 2000 08:46:30 +0100 (MET) >+ From: R.E.Wolff@BitWizard.nl (Rogier Wolff) >+ >+ Lately, while trying to recover a broken disk, my system froze (twice, >+ until I tried something else) while copying the disk. >+ >+ So I had a file of about 50Mb that was growing frantically at the >+ moment of the crash. >+ >+ e2fsck, then finds an indirect block that is completely bogus. It >+ starts by asking me if it's ok to clear a few of the referenced >+ blocks. I say yes. Then it comes to the conclusion: >+ >+ too many invalid blocks. Clear inode? >+ >+ and then I get the option to delete the whole file. Not to truncate >+ the file to a "working" size. >+ >+ >+ I'd MUCH rather have e2fsck say something like: >+ >+ inode 1234 references an invalid block 134345454. Hmm. >+ inode 1234 references 567 out of 50176 invalid blocks, >+ all near the end. Truncate file to 49152 blocks? >+ >+ Here you can see that of the 1024 blocks near the end of the file, >+ only 567 were detected as invalid. However now 48Mb of the file will >+ be recovered, instead of thrown away. >+ >+That's a good point. Actually, the right thing is for e2fsck to offer >+to clear all of the bad blocks in a particular indirect block. I don't >+know how hard it would be to do that, but I'll put it on my e2fsprogs >+TODO list. >+ >+ - Ted >+ >+--------------------------------------------------------------- >+From e2fsprogs Debian TODO file as of 1.10-13. >+ >+* Maybe make -dbg packages. Look at how others do it. >+ >+--------------------------------------------------------------- >+ >+Add --lba option to debian icheck command, and have ways of making it >+easier to translate LBA to filesystem block numbers. >+ >+------------------------------------------------------- >+ >+ >+ >+List of projects for e2fsprogs: >+ >+ >+1) Make debugfs's "ncheck <inode>" command list all of the pathnames >+to an inode, not just only the first link to the inode which is found. >+(A good "intro to libext2fs programming interfaces project) >+ >+ Difficulty: Low Priority: Low >+ >+2) Use a code coverage tool such as Rational's PureCoverage to see >+what kind of code coverage we have for e2fsck, and try to add test >+cases to increase the code coverage for e2fsck. >+ >+ Difficulty: Medium Priorty: Low >+ >+3) Use a code coverage tool such as Rational's PureCoverage to see >+what kind of code coverage we have for resize2fs, and try to add test >+cases to increase the code coverage for resize2fs. >+ >+ Difficulty: Medium Priorty: Medium >+ >+4) Create a new I/O manager (i.e., test_io.c, unix_io.c, et.al.) which >+layers on top of an existing I/O manager which provides copy-on-write >+functionality. This COW I/O manager takes will take two open I/O >+managers, call them "base" and "changed". The "base" I/O manager is >+opened read/only, so any changes are written instead to the "changed" >+I/O manager, in a compact, non-sparse format containing the intended >+modification to the "base" filesystem. >+ >+This will allow resize2fs to figure out what changes need to made to >+extend a filesystem, or expand the size of inodes in the inode table, >+and the changes can be pushed the filesystem in one fell swoop. (If >+the system crashes; the program which runs the "changed" file can be >+re-run, much like a journal replay. My assumption is that the COW >+file will contain the filesystem UUID in a the COW superblock, and the >+COW file will be stored in some place such as /var/state/e2fsprogs, >+with an init.d file to automate the replay so we can recover cleanly >+from a crash during the resize2fs process.) >+ >+ Difficulty: Medium Priority: Medium >+ >+5) Create a new I/O manager (i.e., test_io.c, unix_io.c, et.al.) which >+layers on top of an existing I/O manager which provides an "undo" >+functionality. This undo I/O manager takes will take two open I/O >+managers, call them "base" and "undo". The "base" I/O manager is be >+opened read/write, and when any writes are sent to the I/O manager, >+the I/O manager will check the "undo" I/O manager, using a file format >+identical to the one found in (5) above. >+ >+This is useful for allowing e2fsck to create an "undo" file, which >+would make things like "e2fsck -y" much safer. >+ >+ Difficulty: Low (once 5 is done) Priority: Low >+ >+6) Modify resize2fs so that it can relocate and reorganize the >+filesystem in the following ways: (1) increase the inode size, so that >+an existing filesystem can use the EA-in-inode kernel patch, (2) >+reserve blocks in the resize inode to allow for on-line resizing. Use >+the COW I/O manager described in (5) in order to provide robustness in >+case of a crash during the resize/reorganization operation. >+ >+ Difficulty: High Priority: Medium >+ >+7) Review the EA-in-inode patches to e2fsck for correctness/code >+cleanliness. (I will probably have to do this myself -- Ted) >+ >+ Difficulty: High Priorty: Medium >+ >+8) Add support for extent maps to e2fsprogs. I need to review the >+extent maps first/in parallel. >+ >+ Difficulty: High Priority: Medium >+ >+---------------------------------- >+ >+Need to deal with the case where the resize inode overlaps with the >+bad blocks inode. >+ >Index: e2fsprogs-1.39/configure >=================================================================== >--- e2fsprogs-1.39.orig/configure 2006-04-09 03:37:51.000000000 +0200 >+++ e2fsprogs-1.39/configure 2006-09-18 17:42:57.000000000 +0200 >@@ -309,7 +309,7 @@ ac_includes_default="\ > # include <unistd.h> > #endif" > >-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS E2FSPROGS_YEAR E2FSPROGS_MONTH E2FSPROGS_DAY E2FSPROGS_VERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LD CPP EGREP LINUX_INCLUDE MAINTAINER_CMT HTREE_CMT ELF_CMT BSDLIB_CMT PROFILE_CMT CHECKER_CMT LIB_EXT STATIC_LIB_EXT PROFILED_LIB_EXT SWAPFS_CMT DEBUGFS_CMT IMAGER_CMT RESIZER_CMT E2FSCK_TYPE FSCK_PROG FSCK_MAN E2INITRD_PROG E2INITRD_MAN DEVMAPPER_REQ DEVMAPPER_PC_LIBS DEVMAPPER_LIBS STATIC_DEVMAPPER_LIBS GETTEXT_PACKAGE PACKAGE VERSION SET_MAKE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE RANLIB ac_ct_RANLIB ALLOCA GLIBC21 HAVE_POSIX_PRINTF HAVE_ASPRINTF HAVE_SNPRINTF HAVE_WPRINTF LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB BINARY_TYPE LN LN_S MV CP RM CHMOD AWK SED PERL LDCONFIG AR ac_ct_AR STRIP ac_ct_STRIP BUILD_CC SIZEOF_SHORT SIZEOF_INT SIZEOF_LONG SIZEOF_LONG_LONG SOCKET_LIB DLOPEN_LIB LINUX_CMT CYGWIN_CMT UNIX_CMT root_prefix root_bindir root_sbindir root_libdir root_sysconfdir LDFLAG_STATIC SS_DIR ET_DIR DO_TEST_SUITE INTL_FLAGS BUILD_CFLAGS BUILD_LDFLAGS LIBOBJS LTLIBOBJS' >+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS E2FSPROGS_YEAR E2FSPROGS_MONTH E2FSPROGS_DAY E2FSPROGS_VERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LD CPP EGREP LINUX_INCLUDE MAINTAINER_CMT HTREE_CMT ELF_CMT BSDLIB_CMT PROFILE_CMT CHECKER_CMT LIB_EXT STATIC_LIB_EXT PROFILED_LIB_EXT SWAPFS_CMT DEBUGFS_CMT IMAGER_CMT RESIZER_CMT E2FSCK_TYPE FSCK_PROG FSCK_MAN E2INITRD_PROG E2INITRD_MAN DEVMAPPER_REQ DEVMAPPER_PC_LIBS DEVMAPPER_LIBS STATIC_DEVMAPPER_LIBS GETTEXT_PACKAGE PACKAGE VERSION SET_MAKE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE RANLIB ac_ct_RANLIB ALLOCA GLIBC21 HAVE_POSIX_PRINTF HAVE_ASPRINTF HAVE_SNPRINTF HAVE_WPRINTF LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB BINARY_TYPE LN LN_S MV CP RM CHMOD AWK SED PERL LDCONFIG AR ac_ct_AR STRIP ac_ct_STRIP BUILD_CC SIZEOF_SHORT SIZEOF_INT SIZEOF_LONG SIZEOF_LONG_LONG SOCKET_LIB DLOPEN_LIB UNI_DIFF_OPTS LINUX_CMT CYGWIN_CMT UNIX_CMT root_prefix root_bindir root_sbindir root_libdir root_sysconfdir LDFLAG_STATIC SS_DIR ET_DIR DO_TEST_SUITE INTL_FLAGS BUILD_CFLAGS BUILD_LDFLAGS LIBOBJS LTLIBOBJS' > ac_subst_files='MCONFIG MAKEFILE_ELF MAKEFILE_BSDLIB MAKEFILE_PROFILE MAKEFILE_CHECKER MAKEFILE_LIBRARY ASM_TYPES_HEADER' > > # Initialize some variables set by options. >@@ -14128,6 +14128,16 @@ if test $ac_cv_have_optreset = yes; then > _ACEOF > > fi >+echo "$as_me:$LINENO: checking for unified diff option" >&5 >+echo $ECHO_N "checking for unified diff option... $ECHO_C" >&6 >+if diff -u $0 $0 >& /dev/null ; then >+ UNI_DIFF_OPTS=-u >+else >+ UNI_DIFF_OPTS=-c >+fi >+echo "$as_me:$LINENO: result: $UNI_DIFF_OPTS" >&5 >+echo "${ECHO_T}$UNI_DIFF_OPTS" >&6 >+ > case "$host_os" in > linux*) > cat >>confdefs.h <<\_ACEOF >@@ -15067,6 +15077,7 @@ s,@SIZEOF_LONG@,$SIZEOF_LONG,;t t > s,@SIZEOF_LONG_LONG@,$SIZEOF_LONG_LONG,;t t > s,@SOCKET_LIB@,$SOCKET_LIB,;t t > s,@DLOPEN_LIB@,$DLOPEN_LIB,;t t >+s,@UNI_DIFF_OPTS@,$UNI_DIFF_OPTS,;t t > s,@LINUX_CMT@,$LINUX_CMT,;t t > s,@CYGWIN_CMT@,$CYGWIN_CMT,;t t > s,@UNIX_CMT@,$UNIX_CMT,;t t >Index: e2fsprogs-1.39/configure.in >=================================================================== >--- e2fsprogs-1.39.orig/configure.in 2006-04-09 03:36:21.000000000 +0200 >+++ e2fsprogs-1.39/configure.in 2006-09-18 17:42:57.000000000 +0200 >@@ -687,6 +687,17 @@ if test $ac_cv_have_optreset = yes; then > AC_DEFINE(HAVE_OPTRESET) > fi > dnl >+dnl Check for unified diff >+dnl >+AC_MSG_CHECKING(for unified diff option) >+if diff -u $0 $0 >& /dev/null ; then >+ UNI_DIFF_OPTS=-u >+else >+ UNI_DIFF_OPTS=-c >+fi >+AC_MSG_RESULT($UNI_DIFF_OPTS) >+AC_SUBST(UNI_DIFF_OPTS) >+dnl > dnl We use the EXT2 ioctls only under Linux > dnl > case "$host_os" in >Index: e2fsprogs-1.39/contrib/build-rpm >=================================================================== >--- e2fsprogs-1.39.orig/contrib/build-rpm 2005-09-06 11:40:13.000000000 +0200 >+++ e2fsprogs-1.39/contrib/build-rpm 2006-09-18 17:42:57.000000000 +0200 >@@ -21,7 +21,8 @@ cp -sR `pwd`/$currdir $tmpdir/$builddir > # Remove any build files from the temporary tarball directory > [ -f $tmpdir/$builddir/Makefile ] && make -C $tmpdir/$builddir distclean > >-(cd $tmpdir && tar czfh ${builddir}.tar.gz $builddir) >+EXCLUDE="--exclude .hg*" >+(cd $tmpdir && tar czfh ${builddir}.tar.gz $EXCLUDE $builddir) > > [ "`rpmbuild --version 2> /dev/null`" ] && RPM=rpmbuild || RPM=rpm > $RPM --define "_sourcedir `pwd`/$tmpdir" -ba $currdir/e2fsprogs.spec || exit $? >Index: e2fsprogs-1.39/debugfs/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/debugfs/ChangeLog 2006-05-29 17:00:16.000000000 +0200 >+++ e2fsprogs-1.39/debugfs/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,13 @@ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * htree.c (htree_dump_int_node): Fix printf formats. >+ >+2006-08-29 Theodore Tso <tytso@mit.edu> >+ >+ * lsdel.c (do_lsdel): Fix core-dumping bug. Don't depend on >+ current_fs being non-NULL until after the call to >+ common_args_process(). (Addresses Debian Bug: #378335) >+ > 2006-05-29 Theodore Tso <tytso@mit.edu> > > * util.c (reset_getopt): In order to support ancient Linux header >Index: e2fsprogs-1.39/debugfs/debugfs.c >=================================================================== >--- e2fsprogs-1.39.orig/debugfs/debugfs.c 2006-05-08 17:26:14.000000000 +0200 >+++ e2fsprogs-1.39/debugfs/debugfs.c 2006-09-19 17:05:57.000000000 +0200 >@@ -443,9 +443,9 @@ static void dump_xattr_string(FILE *out, > > for (i = 0; i < len; i++) > if (printable) >- fprintf(out, "%c", str[i]); >+ fprintf(out, "%c", (unsigned char)str[i]); > else >- fprintf(out, "%02x ", str[i]); >+ fprintf(out, "%02x ", (unsigned char)str[i]); > } > > static void internal_dump_inode_extra(FILE *out, const char *prefix, >Index: e2fsprogs-1.39/debugfs/htree.c >=================================================================== >--- e2fsprogs-1.39.orig/debugfs/htree.c 2006-04-28 01:28:22.000000000 +0200 >+++ e2fsprogs-1.39/debugfs/htree.c 2006-09-19 17:02:36.000000000 +0200 >@@ -114,7 +114,7 @@ static void htree_dump_int_node(ext2_fil > > for (i=0; i < limit.count; i++) { > hash = i ? ext2fs_le32_to_cpu(ent[i].hash) : 0; >- fprintf(pager, "Entry #%d: Hash 0x%08x%s, block %d\n", i, >+ fprintf(pager, "Entry #%d: Hash 0x%08x%s, block %u\n", i, > hash, (hash & 1) ? " (**)" : "", > ext2fs_le32_to_cpu(ent[i].block)); > } >Index: e2fsprogs-1.39/debugfs/lsdel.c >=================================================================== >--- e2fsprogs-1.39.orig/debugfs/lsdel.c 2005-09-25 03:56:38.000000000 +0200 >+++ e2fsprogs-1.39/debugfs/lsdel.c 2006-09-19 17:02:36.000000000 +0200 >@@ -81,12 +81,13 @@ void do_lsdel(int argc, char **argv) > int i; > long secs = 0; > char *tmp; >- time_t now = current_fs->now ? current_fs->now : time(0); >+ time_t now; > FILE *out; > > if (common_args_process(argc, argv, 1, 2, "ls_deleted_inodes", > "[secs]", 0)) > return; >+ > if (argc > 1) { > secs = strtol(argv[1],&tmp,0); > if (*tmp) { >@@ -95,6 +96,7 @@ void do_lsdel(int argc, char **argv) > } > } > >+ now = current_fs->now ? current_fs->now : time(0); > max_delarray = 100; > num_delarray = 0; > delarray = malloc(max_delarray * sizeof(struct deleted_info)); >Index: e2fsprogs-1.39/e2fsck/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/ChangeLog 2006-05-29 17:02:15.000000000 +0200 >+++ e2fsprogs-1.39/e2fsck/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,47 @@ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * pass1.c (handle_bad_fs_blocks): use blk_t, not int for first_block. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * unix.c (show_stats): use ext2_ino_t for inode containers. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * pass1.c (new_table_block, handle_fs_bad_blocks): >+ * super.c (check_super_block): >+ Use new inlines to calculate group first & last blocks. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * e2fsck.h (e2fsck): Use unsigned types for filesystem counters. >+ * emptydir.c (add_empty_dirblock): >+ * iscan.c (main): >+ * unix.c (show_stats, check_if_skip): Fix printf formats. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * pass1.c (handle_fs_bad_blocks): Remove unused variables. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * pass1b.c (check_if_fs_block): Change block group loop to use >+ a common pattern of first_block/last_block, etc. >+ >+ * super.c (check_super_block): Avoid overflows when iterating over >+ group descriptors on very large filesystems >+ >+2006-08-30 Theodore Tso <tytso@mit.edu> >+ >+ * pass5.c (check_inode_bitmaps, check_inode_end, check_block_end): >+ * pass4.c (e2fsck_pass4): Fix potential overflow problems when the >+ number of blocks is close to 2**31. >+ >+2006-08-29 Theodore Tso <tytso@mit.edu> >+ >+ * super.c (release_inode_blocks): Fix silly spelling error. >+ (Addresses SourceForge Bug: #1531372) >+ > 2006-05-29 Theodore Tso <tytso@mit.edu> > > * pass1b.c: Add missing semicolon when HAVE_INTPTR_T is not defined >Index: e2fsprogs-1.39/e2fsck/Makefile.pq >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/e2fsck/Makefile.pq 2006-09-18 17:42:57.000000000 +0200 >@@ -0,0 +1,9 @@ >+TOPSRC=.. >+LIBNAME=E2FSCK.LIB >+OBJFILE=E2FSCK.LST >+ >+OBJS= e2fsck.obj super.obj pass1.obj pass2.obj pass3.obj \ >+ pass4.obj pass5.obj dirinfo.obj >+ >+!include $(TOPSRC)\powerquest\MCONFIG >+ >Index: e2fsprogs-1.39/e2fsck/e2fsck.h >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/e2fsck.h 2006-03-19 03:33:55.000000000 +0100 >+++ e2fsprogs-1.39/e2fsck/e2fsck.h 2006-09-19 17:05:58.000000000 +0200 >@@ -6,6 +6,9 @@ > * > */ > >+#ifndef _E2FSCK_H >+#define _E2FSCK_H >+ > #include <stdio.h> > #include <string.h> > #ifdef HAVE_UNISTD_H >@@ -306,24 +309,24 @@ struct e2fsck_struct { > char start_meta[2], stop_meta[2]; > > /* File counts */ >- int fs_directory_count; >- int fs_regular_count; >- int fs_blockdev_count; >- int fs_chardev_count; >- int fs_links_count; >- int fs_symlinks_count; >- int fs_fast_symlinks_count; >- int fs_fifo_count; >- int fs_total_count; >- int fs_badblocks_count; >- int fs_sockets_count; >- int fs_ind_count; >- int fs_dind_count; >- int fs_tind_count; >- int fs_fragmented; >- int large_files; >- int fs_ext_attr_inodes; >- int fs_ext_attr_blocks; >+ __u32 fs_directory_count; >+ __u32 fs_regular_count; >+ __u32 fs_blockdev_count; >+ __u32 fs_chardev_count; >+ __u32 fs_links_count; >+ __u32 fs_symlinks_count; >+ __u32 fs_fast_symlinks_count; >+ __u32 fs_fifo_count; >+ __u32 fs_total_count; >+ __u32 fs_badblocks_count; >+ __u32 fs_sockets_count; >+ __u32 fs_ind_count; >+ __u32 fs_dind_count; >+ __u32 fs_tind_count; >+ __u32 fs_fragmented; >+ __u32 large_files; >+ __u32 fs_ext_attr_inodes; >+ __u32 fs_ext_attr_blocks; > > time_t now; > >@@ -464,6 +467,9 @@ extern void e2fsck_read_inode(e2fsck_t c > struct ext2_inode * inode, const char * proc); > extern void e2fsck_write_inode(e2fsck_t ctx, unsigned long ino, > struct ext2_inode * inode, const char * proc); >+extern void e2fsck_write_inode_full(e2fsck_t ctx, unsigned long ino, >+ struct ext2_inode * inode, int bufsize, >+ const char *proc); > #ifdef MTRACE > extern void mtrace_print(char *mesg); > #endif >@@ -475,3 +481,4 @@ extern int ext2_file_type(unsigned int m > extern void e2fsck_clear_progbar(e2fsck_t ctx); > extern int e2fsck_simple_progress(e2fsck_t ctx, const char *label, > float percent, unsigned int dpynum); >+#endif /* _E2FSCK_H */ >Index: e2fsprogs-1.39/e2fsck/emptydir.c >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/emptydir.c 2006-03-19 03:34:00.000000000 +0100 >+++ e2fsprogs-1.39/e2fsck/emptydir.c 2006-09-18 17:42:57.000000000 +0200 >@@ -94,7 +94,7 @@ void add_empty_dirblock(empty_dir_info e > if (db->ino == 11) > return; /* Inode number 11 is usually lost+found */ > >- printf(_("Empty directory block %u (#%d) in inode %d\n"), >+ printf(_("Empty directory block %u (#%d) in inode %u\n"), > db->blk, db->blockcnt, db->ino); > > ext2fs_mark_block_bitmap(edi->empty_dir_blocks, db->blk); >Index: e2fsprogs-1.39/e2fsck/iscan.c >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/iscan.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/e2fsck/iscan.c 2006-09-18 17:42:57.000000000 +0200 >@@ -98,7 +98,7 @@ int main (int argc, char *argv[]) > int exit_value = FSCK_OK; > ext2_filsys fs; > ext2_ino_t ino; >- int num_inodes = 0; >+ __u32 num_inodes = 0; > struct ext2_inode inode; > ext2_inode_scan scan; > >@@ -135,7 +135,7 @@ int main (int argc, char *argv[]) > } > > print_resource_track(NULL, &global_rtrack); >- printf(_("%d inodes scanned.\n"), num_inodes); >+ printf(_("%u inodes scanned.\n"), num_inodes); > > exit(0); > } >Index: e2fsprogs-1.39/e2fsck/pass1.c >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/pass1.c 2006-03-19 03:33:56.000000000 +0100 >+++ e2fsprogs-1.39/e2fsck/pass1.c 2006-09-19 17:05:58.000000000 +0200 >@@ -1890,6 +1890,7 @@ static void new_table_block(e2fsck_t ctx > { > ext2_filsys fs = ctx->fs; > blk_t old_block = *new_block; >+ blk_t last_block; > int i; > char *buf; > struct problem_context pctx; >@@ -1900,8 +1901,8 @@ static void new_table_block(e2fsck_t ctx > pctx.blk = old_block; > pctx.str = name; > >- pctx.errcode = ext2fs_get_free_blocks(fs, first_block, >- first_block + fs->super->s_blocks_per_group, >+ last_block = ext2fs_group_last_block(fs, group); >+ pctx.errcode = ext2fs_get_free_blocks(fs, first_block, last_block, > num, ctx->block_found_map, new_block); > if (pctx.errcode) { > pctx.num = num; >@@ -1952,9 +1953,11 @@ static void handle_fs_bad_blocks(e2fsck_ > { > ext2_filsys fs = ctx->fs; > dgrp_t i; >- int first_block = fs->super->s_first_data_block; >+ blk_t first_block; > > for (i = 0; i < fs->group_desc_count; i++) { >+ first_block = ext2fs_group_first_block(fs, i); >+ > if (ctx->invalid_block_bitmap_flag[i]) { > new_table_block(ctx, first_block, i, _("block bitmap"), > 1, &fs->group_desc[i].bg_block_bitmap); >@@ -1969,7 +1972,6 @@ static void handle_fs_bad_blocks(e2fsck_ > &fs->group_desc[i].bg_inode_table); > ctx->flags |= E2F_FLAG_RESTART; > } >- first_block += fs->super->s_blocks_per_group; > } > ctx->invalid_bitmaps = 0; > } >@@ -1981,14 +1983,13 @@ static void handle_fs_bad_blocks(e2fsck_ > static void mark_table_blocks(e2fsck_t ctx) > { > ext2_filsys fs = ctx->fs; >- blk_t block, b; >+ blk_t b; > dgrp_t i; > int j; > struct problem_context pctx; > > clear_problem_context(&pctx); > >- block = fs->super->s_first_data_block; > for (i = 0; i < fs->group_desc_count; i++) { > pctx.group = i; > >@@ -2049,7 +2050,6 @@ static void mark_table_blocks(e2fsck_t c > fs->group_desc[i].bg_inode_bitmap); > } > } >- block += fs->super->s_blocks_per_group; > } > } > >Index: e2fsprogs-1.39/e2fsck/pass1b.c >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/pass1b.c 2006-05-29 02:52:24.000000000 +0200 >+++ e2fsprogs-1.39/e2fsck/pass1b.c 2006-09-19 17:05:57.000000000 +0200 >@@ -779,16 +779,16 @@ errout: > static int check_if_fs_block(e2fsck_t ctx, blk_t test_block) > { > ext2_filsys fs = ctx->fs; >- blk_t block; >+ blk_t first_block; > dgrp_t i; > >- block = fs->super->s_first_data_block; >+ first_block = fs->super->s_first_data_block; > for (i = 0; i < fs->group_desc_count; i++) { > >- /* Check superblocks/block group descriptros */ >+ /* Check superblocks/block group descriptors */ > if (ext2fs_bg_has_super(fs, i)) { >- if (test_block >= block && >- (test_block <= block + fs->desc_blocks)) >+ if (test_block >= first_block && >+ (test_block <= first_block + fs->desc_blocks)) > return 1; > } > >@@ -804,7 +804,7 @@ static int check_if_fs_block(e2fsck_t ct > (test_block == fs->group_desc[i].bg_inode_bitmap)) > return 1; > >- block += fs->super->s_blocks_per_group; >+ first_block += fs->super->s_blocks_per_group; > } > return 0; > } >Index: e2fsprogs-1.39/e2fsck/pass4.c >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/pass4.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/e2fsck/pass4.c 2006-09-19 17:05:57.000000000 +0200 >@@ -110,8 +110,9 @@ void e2fsck_pass4(e2fsck_t ctx) > if (ctx->progress) > if ((ctx->progress)(ctx, 4, 0, maxgroup)) > return; >- >- for (i=1; i <= fs->super->s_inodes_count; i++) { >+ >+ /* Protect loop from wrap-around if s_inodes_count maxed */ >+ for (i=1; i <= fs->super->s_inodes_count && i > 0; i++) { > if (ctx->flags & E2F_FLAG_SIGNAL_MASK) > return; > if ((i % fs->super->s_inodes_per_group) == 0) { >Index: e2fsprogs-1.39/e2fsck/pass5.c >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/pass5.c 2006-05-08 18:54:55.000000000 +0200 >+++ e2fsprogs-1.39/e2fsck/pass5.c 2006-09-19 17:05:57.000000000 +0200 >@@ -370,7 +370,8 @@ redo_counts: > EXT2_BG_INODE_UNINIT)) > skip_group++; > >- for (i = 1; i <= fs->super->s_inodes_count; i++) { >+ /* Protect loop from wrap-around if inodes_count is maxed */ >+ for (i = 1; i <= fs->super->s_inodes_count && i > 0; i++) { > actual = ext2fs_fast_test_inode_bitmap(ctx->inode_used_map, i); > if (skip_group) > bitmap = 0; >@@ -528,8 +529,9 @@ static void check_inode_end(e2fsck_t ctx > } > if (save_inodes_count == end) > return; >- >- for (i = save_inodes_count + 1; i <= end; i++) { >+ >+ /* protect loop from wrap-around if end is maxed */ >+ for (i = save_inodes_count + 1; i <= end && i > save_inodes_count; i++) { > if (!ext2fs_test_inode_bitmap(fs->inode_map, i)) { > if (fix_problem(ctx, PR_5_INODE_BMAP_PADDING, &pctx)) { > for (i = save_inodes_count + 1; i <= end; i++) >@@ -572,8 +574,9 @@ static void check_block_end(e2fsck_t ctx > } > if (save_blocks_count == end) > return; >- >- for (i = save_blocks_count + 1; i <= end; i++) { >+ >+ /* Protect loop from wrap-around if end is maxed */ >+ for (i = save_blocks_count + 1; i <= end && i > save_blocks_count; i++) { > if (!ext2fs_test_block_bitmap(fs->block_map, i)) { > if (fix_problem(ctx, PR_5_BLOCK_BMAP_PADDING, &pctx)) { > for (i = save_blocks_count + 1; i <= end; i++) >Index: e2fsprogs-1.39/e2fsck/recovery.c >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/recovery.c 2006-05-14 22:48:09.000000000 +0200 >+++ e2fsprogs-1.39/e2fsck/recovery.c 2006-09-19 17:05:57.000000000 +0200 >@@ -236,7 +236,7 @@ int journal_recover(journal_t *journal) > > if (!sb->s_start) { > jbd_debug(1, "No recovery required, last transaction %d\n", >- ntohl(sb->s_sequence)); >+ (int)ntohl(sb->s_sequence)); > journal->j_transaction_sequence = ntohl(sb->s_sequence) + 1; > return 0; > } >Index: e2fsprogs-1.39/e2fsck/super.c >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/super.c 2006-03-19 03:33:56.000000000 +0100 >+++ e2fsprogs-1.39/e2fsck/super.c 2006-09-19 17:05:57.000000000 +0200 >@@ -220,7 +220,7 @@ static int release_inode_blocks(e2fsck_t > } > if (retval) { > com_err("release_inode_blocks", retval, >- _("while calling ext2fs_adjust_ea_refocunt for inode %d"), >+ _("while calling ext2fs_adjust_ea_refcount for inode %d"), > ino); > return 1; > } >@@ -566,15 +566,15 @@ void check_super_block(e2fsck_t ctx) > * Verify the group descriptors.... > */ > first_block = sb->s_first_data_block; >- last_block = first_block + blocks_per_group; > > for (i = 0, gd=fs->group_desc; i < fs->group_desc_count; i++, gd++) { > pctx.group = i; >- >- if (i == fs->group_desc_count - 1) >- last_block = sb->s_blocks_count; >+ >+ first_block = ext2fs_group_first_block(fs, i); >+ last_block = ext2fs_group_last_block(fs, i); >+ > if ((gd->bg_block_bitmap < first_block) || >- (gd->bg_block_bitmap >= last_block)) { >+ (gd->bg_block_bitmap > last_block)) { > pctx.blk = gd->bg_block_bitmap; > if (fix_problem(ctx, PR_0_BB_NOT_GROUP, &pctx)) > gd->bg_block_bitmap = 0; >@@ -584,7 +584,7 @@ void check_super_block(e2fsck_t ctx) > ctx->invalid_bitmaps++; > } > if ((gd->bg_inode_bitmap < first_block) || >- (gd->bg_inode_bitmap >= last_block)) { >+ (gd->bg_inode_bitmap > last_block)) { > pctx.blk = gd->bg_inode_bitmap; > if (fix_problem(ctx, PR_0_IB_NOT_GROUP, &pctx)) > gd->bg_inode_bitmap = 0; >@@ -595,7 +595,7 @@ void check_super_block(e2fsck_t ctx) > } > if ((gd->bg_inode_table < first_block) || > ((gd->bg_inode_table + >- fs->inode_blocks_per_group - 1) >= last_block)) { >+ fs->inode_blocks_per_group - 1) > last_block)) { > pctx.blk = gd->bg_inode_table; > if (fix_problem(ctx, PR_0_ITABLE_NOT_GROUP, &pctx)) > gd->bg_inode_table = 0; >@@ -606,8 +606,6 @@ void check_super_block(e2fsck_t ctx) > } > free_blocks += gd->bg_free_blocks_count; > free_inodes += gd->bg_free_inodes_count; >- first_block += sb->s_blocks_per_group; >- last_block += sb->s_blocks_per_group; > > if ((gd->bg_free_blocks_count > sb->s_blocks_per_group) || > (gd->bg_free_inodes_count > sb->s_inodes_per_group) || >Index: e2fsprogs-1.39/e2fsck/unix.c >=================================================================== >--- e2fsprogs-1.39.orig/e2fsck/unix.c 2006-03-20 02:31:06.000000000 +0100 >+++ e2fsprogs-1.39/e2fsck/unix.c 2006-09-19 17:02:36.000000000 +0200 >@@ -98,7 +98,7 @@ static void usage(e2fsck_t ctx) > static void show_stats(e2fsck_t ctx) > { > ext2_filsys fs = ctx->fs; >- int inodes, inodes_used; >+ ext2_ino_t inodes, inodes_used; > blk_t blocks, blocks_used; > int dir_links; > int num_files, num_links; >@@ -118,49 +118,48 @@ static void show_stats(e2fsck_t ctx) > frag_percent = (frag_percent + 5) / 10; > > if (!verbose) { >- printf(_("%s: %d/%d files (%0d.%d%% non-contiguous), %u/%u blocks\n"), >+ printf(_("%s: %u/%u files (%0d.%d%% non-contiguous), %u/%u blocks\n"), > ctx->device_name, inodes_used, inodes, > frag_percent / 10, frag_percent % 10, > blocks_used, blocks); > return; > } >- printf (P_("\n%8d inode used (%d%%)\n", "\n%8d inodes used (%d%%)\n", >- inodes_used), inodes_used, 100 * inodes_used / inodes); >- printf (P_("%8d non-contiguous inode (%0d.%d%%)\n", >- "%8d non-contiguous inodes (%0d.%d%%)\n", >+ printf (P_("\n%8u inode used (%2.2f%%)\n", "\n%8u inodes used (%2.2f%%)\n", >+ inodes_used), inodes_used, 100.0 * inodes_used / inodes); >+ printf (P_("%8u non-contiguous inode (%0d.%d%%)\n", >+ "%8u non-contiguous inodes (%0d.%d%%)\n", > ctx->fs_fragmented), > ctx->fs_fragmented, frag_percent / 10, frag_percent % 10); >- printf (_(" # of inodes with ind/dind/tind blocks: %d/%d/%d\n"), >+ printf (_(" # of inodes with ind/dind/tind blocks: %u/%u/%u\n"), > ctx->fs_ind_count, ctx->fs_dind_count, ctx->fs_tind_count); >- printf (P_("%8u block used (%d%%)\n", "%8u blocks used (%d%%)\n", >- blocks_used), >- blocks_used, (int) ((long long) 100 * blocks_used / blocks)); >- printf (P_("%8d bad block\n", "%8d bad blocks\n", >+ printf (P_("%8u block used (%2.2f%%)\n", "%8u blocks used (%2.2f%%)\n", >+ blocks_used), blocks_used, 100.0 * blocks_used / blocks); >+ printf (P_("%8u bad block\n", "%8u bad blocks\n", > ctx->fs_badblocks_count), ctx->fs_badblocks_count); >- printf (P_("%8d large file\n", "%8d large files\n", >+ printf (P_("%8u large file\n", "%8u large files\n", > ctx->large_files), ctx->large_files); >- printf (P_("\n%8d regular file\n", "\n%8d regular files\n", >+ printf (P_("\n%8u regular file\n", "\n%8u regular files\n", > ctx->fs_regular_count), ctx->fs_regular_count); >- printf (P_("%8d directory\n", "%8d directories\n", >+ printf (P_("%8u directory\n", "%8u directories\n", > ctx->fs_directory_count), ctx->fs_directory_count); >- printf (P_("%8d character device file\n", >- "%8d character device files\n", ctx->fs_chardev_count), >+ printf (P_("%8u character device file\n", >+ "%8u character device files\n", ctx->fs_chardev_count), > ctx->fs_chardev_count); >- printf (P_("%8d block device file\n", "%8d block device files\n", >+ printf (P_("%8u block device file\n", "%8u block device files\n", > ctx->fs_blockdev_count), ctx->fs_blockdev_count); >- printf (P_("%8d fifo\n", "%8d fifos\n", ctx->fs_fifo_count), >+ printf (P_("%8u fifo\n", "%8u fifos\n", ctx->fs_fifo_count), > ctx->fs_fifo_count); >- printf (P_("%8d link\n", "%8d links\n", >+ printf (P_("%8u link\n", "%8u links\n", > ctx->fs_links_count - dir_links), > ctx->fs_links_count - dir_links); >- printf (P_("%8d symbolic link", "%8d symbolic links", >+ printf (P_("%8u symbolic link", "%8u symbolic links", > ctx->fs_symlinks_count), ctx->fs_symlinks_count); >- printf (P_(" (%d fast symbolic link)\n", " (%d fast symbolic links)\n", >+ printf (P_(" (%u fast symbolic link)\n", " (%u fast symbolic links)\n", > ctx->fs_fast_symlinks_count), ctx->fs_fast_symlinks_count); >- printf (P_("%8d socket\n", "%8d sockets\n", ctx->fs_sockets_count), >+ printf (P_("%8u socket\n", "%8u sockets\n", ctx->fs_sockets_count), > ctx->fs_sockets_count); > printf ("--------\n"); >- printf (P_("%8d file\n", "%8d files\n", >+ printf (P_("%8u file\n", "%8u files\n", > ctx->fs_total_count - dir_links), > ctx->fs_total_count - dir_links); > } >@@ -300,7 +299,7 @@ static void check_if_skip(e2fsck_t ctx) > fputs(_(", check forced.\n"), stdout); > return; > } >- printf(_("%s: clean, %d/%d files, %u/%u blocks"), ctx->device_name, >+ printf(_("%s: clean, %u/%u files, %u/%u blocks"), ctx->device_name, > fs->super->s_inodes_count - fs->super->s_free_inodes_count, > fs->super->s_inodes_count, > fs->super->s_blocks_count - fs->super->s_free_blocks_count, >@@ -568,7 +567,7 @@ static void syntax_err_report(const char > exit(FSCK_ERROR); > } > >-static const char *config_fn[] = { "/etc/e2fsck.conf", 0 }; >+static const char *config_fn[] = { ROOT_SYSCONFDIR "/e2fsck.conf", 0 }; > > static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx) > { >Index: e2fsprogs-1.39/e2fsprogs.spec >=================================================================== >--- e2fsprogs-1.39.orig/e2fsprogs.spec 2006-04-10 05:25:53.000000000 +0200 >+++ e2fsprogs-1.39/e2fsprogs.spec 2006-09-19 16:51:11.000000000 +0200 >@@ -4,9 +4,9 @@ > > Summary: Utilities for managing the second extended (ext2) filesystem. > Name: e2fsprogs >-Version: 1.39-WIP >+Version: 1.39 > Release: 0 >-Copyright: GPL >+License: GPLv2 > Group: System Environment/Base > Source: ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-%{version}.tar.gz > Url: http://e2fsprogs.sourceforge.net/ >@@ -181,7 +181,6 @@ exit 0 > %{_includedir}/ext2fs > %{_includedir}/ss > %{_includedir}/uuid >-%{_includedir}/e2p/e2p.h > %{_mandir}/man1/compile_et.1* > %{_mandir}/man1/mk_cmds.1* > %{_mandir}/man3/com_err.3* >Index: e2fsprogs-1.39/e2fsprogs.spec.in >=================================================================== >--- e2fsprogs-1.39.orig/e2fsprogs.spec.in 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/e2fsprogs.spec.in 2006-09-18 17:42:57.000000000 +0200 >@@ -6,7 +6,7 @@ Summary: Utilities for managing the seco > Name: e2fsprogs > Version: @E2FSPROGS_VERSION@ > Release: 0 >-Copyright: GPL >+License: GPLv2 > Group: System Environment/Base > Source: ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-%{version}.tar.gz > Url: http://e2fsprogs.sourceforge.net/ >@@ -181,7 +181,6 @@ exit 0 > %{_includedir}/ext2fs > %{_includedir}/ss > %{_includedir}/uuid >-%{_includedir}/e2p/e2p.h > %{_mandir}/man1/compile_et.1* > %{_mandir}/man1/mk_cmds.1* > %{_mandir}/man3/com_err.3* >Index: e2fsprogs-1.39/ext2ed/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/ext2ed/ChangeLog 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/ext2ed/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,8 @@ >+2006-08-30 Theodore Tso <tytso@mit.edu> >+ >+ * init.c (div_ceil, set_file_system_info): Fix potential overflow >+ for really big filesystems. >+ > 2006-06-30 Theodore Ts'o <tytso@mit.edu> > > * Release of E2fsprogs 1.38 >Index: e2fsprogs-1.39/ext2ed/init.c >=================================================================== >--- e2fsprogs-1.39.orig/ext2ed/init.c 2005-12-10 01:00:32.000000000 +0100 >+++ e2fsprogs-1.39/ext2ed/init.c 2006-09-19 17:02:36.000000000 +0200 >@@ -370,6 +370,13 @@ void add_user_command (struct struct_com > ptr->callback [num]=callback; > } > >+static unsigned int div_ceil(unsigned int a, unsigned int b) >+{ >+ if (!a) >+ return 0; >+ return ((a - 1) / b) + 1; >+} >+ > int set_file_system_info (void) > > { >@@ -415,8 +422,8 @@ int set_file_system_info (void) > file_system_info.first_group_desc_offset=2*EXT2_MIN_BLOCK_SIZE; > else > file_system_info.first_group_desc_offset=file_system_info.block_size; >- file_system_info.groups_count=( sb->s_blocks_count-sb->s_first_data_block+sb->s_blocks_per_group-1) / >- sb->s_blocks_per_group; >+ file_system_info.groups_count = div_ceil(sb->s_blocks_count, >+ sb->s_blocks_per_group); > > file_system_info.inodes_per_block=file_system_info.block_size/sizeof (struct ext2_inode); > file_system_info.blocks_per_group=sb->s_inodes_per_group/file_system_info.inodes_per_block; >Index: e2fsprogs-1.39/lib/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/lib/ChangeLog 2006-03-18 03:12:30.000000000 +0100 >+++ e2fsprogs-1.39/lib/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,8 @@ >+2006-06-28 Andreas Dilger <adilger@clusterfs.com> >+ >+ * e2fsck.h, ext2_ext_attr.h: Protect header files from multiple >+ inclusion. >+ > 2006-03-17 Theodore Ts'o <tytso@mit.edu> > > * Makefile.library (real-subdirs): Add real-subdirs:: target so >Index: e2fsprogs-1.39/lib/blkid/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/ChangeLog 2006-05-14 23:25:12.000000000 +0200 >+++ e2fsprogs-1.39/lib/blkid/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,23 @@ >+2006-09-17 Karel Zak <kzak@redhat.com> >+ >+ * probe.c (probe_fat): Fix problem with empty FAT label. >+ >+2006-09-17 Karel Zak <kzak@redhat.com> >+ >+ * probe.c (probe_gfs, _gfs2), probe.h: Add support for GFS/GFS2 >+ >+2006-09-12 Theodore Tso <tytso@mit.edu> >+ >+ * devname.c (dm_probe_all): probe_one expects device names passed >+ to it w/o the leading "/dev". >+ >+2006-08-19 Andreas Dilger <adilger@clusterfs.com> >+ >+ * blkid.8.in: Make the description of the -l option more accurate. >+ >+ * Makefile.in (clean): Avoid removing the tst_*.c files, but >+ instead list each of the tst_* binaries explicitly. >+ > 2006-05-14 Theodore Tso <tytso@mit.edu> > > * probe.c (probe_udf): Fix signed vs. unsigned lint warning; >Index: e2fsprogs-1.39/lib/blkid/Makefile.in >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/Makefile.in 2006-04-09 03:52:52.000000000 +0200 >+++ e2fsprogs-1.39/lib/blkid/Makefile.in 2006-09-18 17:42:57.000000000 +0200 >@@ -175,7 +175,9 @@ uninstall:: > done > > clean:: >- $(RM) -f \#* *.s *.o *.orig *.a *~ *.bak tst_* tests/*.out tests/*.ok \ >+ $(RM) -f \#* *.s *.o *.orig *.a *~ *.bak tst_cache tst_dev tst_devname \ >+ tst_devno tst_getsize tst_probe tst_read tst_resolve tst_save \ >+ tst_tag tst_types tests/*.out tests/*.ok \ > tests/*.img results test_probe core profiled/* \ > checker/* blkid_types.h ../libblkid.a ../libblkid_p.a \ > $(SMANPAGES) blkid >Index: e2fsprogs-1.39/lib/blkid/dev.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/dev.c 2006-03-13 00:10:44.000000000 +0100 >+++ e2fsprogs-1.39/lib/blkid/dev.c 2006-09-18 17:42:57.000000000 +0200 >@@ -68,8 +68,8 @@ void blkid_debug_dump_dev(blkid_dev dev) > } > > printf(" dev: name = %s\n", dev->bid_name); >- printf(" dev: DEVNO=\"0x%0llx\"\n", dev->bid_devno); >- printf(" dev: TIME=\"%ld\"\n", dev->bid_time); >+ printf(" dev: DEVNO=\"0x%0llx\"\n", (long long)dev->bid_devno); >+ printf(" dev: TIME=\"%ld\"\n", (long)dev->bid_time); > printf(" dev: PRI=\"%d\"\n", dev->bid_pri); > printf(" dev: flags = 0x%08X\n", dev->bid_flags); > >@@ -196,7 +196,7 @@ extern int optind; > void usage(char *prog) > { > fprintf(stderr, "Usage: %s [-f blkid_file] [-m debug_mask]\n", prog); >- fprintf(stderr, "\tList all devices and exit\n", prog); >+ fprintf(stderr, "\tList all devices and exit\n"); > exit(1); > } > >@@ -219,7 +219,7 @@ int main(int argc, char **argv) > case 'm': > blkid_debug_mask = strtoul (optarg, &tmp, 0); > if (*tmp) { >- fprintf(stderr, "Invalid debug mask: %d\n", >+ fprintf(stderr, "Invalid debug mask: %s\n", > optarg); > exit(1); > } >Index: e2fsprogs-1.39/lib/blkid/devname.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/devname.c 2006-03-19 20:53:35.000000000 +0100 >+++ e2fsprogs-1.39/lib/blkid/devname.c 2006-09-18 17:42:57.000000000 +0200 >@@ -291,7 +291,7 @@ static void dm_probe_all(blkid_cache cac > > names = (void *)names + next; > >- rc = asprintf(&device, "/dev/mapper/%s", names->name); >+ rc = asprintf(&device, "mapper/%s", names->name); > if (rc < 0) > goto try_next; > >Index: e2fsprogs-1.39/lib/blkid/devno.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/devno.c 2006-01-28 05:42:34.000000000 +0100 >+++ e2fsprogs-1.39/lib/blkid/devno.c 2006-09-18 17:42:57.000000000 +0200 >@@ -125,7 +125,7 @@ static void scan_dir(char *dirname, dev_ > else if (S_ISBLK(st.st_mode) && st.st_rdev == devno) { > *devname = blkid_strdup(path); > DBG(DEBUG_DEVNO, >- printf("found 0x%llx at %s (%p)\n", devno, >+ printf("found 0x%llx at %s (%p)\n", (long long)devno, > path, *devname)); > break; > } >@@ -183,7 +183,7 @@ char *blkid_devno_to_devname(dev_t devno > (unsigned long) devno)); > } else { > DBG(DEBUG_DEVNO, >- printf("found devno 0x%04llx as %s\n", devno, devname)); >+ printf("found devno 0x%04llx as %s\n", (long long)devno, devname)); > } > > >@@ -224,7 +224,7 @@ int main(int argc, char** argv) > } > devno = makedev(major, minor); > } >- printf("Looking for device 0x%04Lx\n", devno); >+ printf("Looking for device 0x%04llx\n", (long long)devno); > devname = blkid_devno_to_devname(devno); > if (devname) > free(devname); >Index: e2fsprogs-1.39/lib/blkid/getsize.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/getsize.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/blkid/getsize.c 2006-09-18 17:42:57.000000000 +0200 >@@ -70,7 +70,7 @@ static int valid_offset(int fd, blkid_lo > } > > /* >- * Returns the number of blocks in a partition >+ * Returns the number of bytes in a partition > */ > blkid_loff_t blkid_get_dev_size(int fd) > { >@@ -122,25 +122,33 @@ blkid_loff_t blkid_get_dev_size(int fd) > return (blkid_loff_t)size << 9; > #endif > >+/* tested on FreeBSD 6.1-RELEASE i386 */ >+#ifdef DIOCGMEDIASIZE >+ if (ioctl(fd, DIOCGMEDIASIZE, &size64) >= 0) >+ return (off_t)size64; >+#endif /* DIOCGMEDIASIZE */ >+ > #ifdef FDGETPRM > if (ioctl(fd, FDGETPRM, &this_floppy) >= 0) > return (blkid_loff_t)this_floppy.size << 9; > #endif > #ifdef HAVE_SYS_DISKLABEL_H >-#if 0 > /* >- * This should work in theory but I haven't tested it. Anyone >- * on a BSD system want to test this for me? In the meantime, >- * binary search mechanism should work just fine. >+ * This code works for FreeBSD 4.11 i386, except for the full device >+ * (such as /dev/ad0). It doesn't work properly for newer FreeBSD >+ * though. FreeBSD >= 5.0 should be covered by the DIOCGMEDIASIZE >+ * above however. >+ * >+ * Note that FreeBSD >= 4.0 has disk devices as unbuffered (raw, >+ * character) devices, so we need to check for S_ISCHR, too. > */ >- if ((fstat(fd, &st) >= 0) && S_ISBLK(st.st_mode)) >+ if ((fstat(fd, &st) >= 0) && (S_ISBLK(st.st_mode) || S_ISCHR(st.st_mode))) > part = st.st_rdev & 7; > if (part >= 0 && (ioctl(fd, DIOCGDINFO, (char *)&lab) >= 0)) { > pp = &lab.d_partitions[part]; > if (pp->p_size) > return pp->p_size << 9; > } >-#endif > #endif /* HAVE_SYS_DISKLABEL_H */ > { > #ifdef HAVE_FSTAT64 >Index: e2fsprogs-1.39/lib/blkid/probe.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/probe.c 2006-05-14 23:24:09.000000000 +0200 >+++ e2fsprogs-1.39/lib/blkid/probe.c 2006-09-18 17:42:57.000000000 +0200 >@@ -153,7 +153,6 @@ static int probe_ext3(struct blkid_probe > unsigned char *buf) > { > struct ext2_super_block *es; >- char uuid[37]; > es = (struct ext2_super_block *)buf; > > /* Distinguish between jbd and ext2/3 fs */ >@@ -225,7 +224,7 @@ static char *no_name = "NO NAME "; > > static unsigned char *search_fat_label(struct vfat_dir_entry *dir, int count) > { >- unsigned int i; >+ int i; > > for (i = 0; i < count; i++) { > if (dir[i].name[0] == 0x00) >@@ -254,7 +253,7 @@ static int probe_fat(struct blkid_probe > struct msdos_super_block *ms = (struct msdos_super_block *) buf; > struct vfat_dir_entry *dir; > char serno[10]; >- const unsigned char *label = 0, *vol_label = 0; >+ const unsigned char *label = 0, *vol_label = 0, *tmp; > unsigned char *vol_serno; > int label_len = 0, maxloop = 100; > __u16 sector_size, dir_entries, reserved; >@@ -262,14 +261,17 @@ static int probe_fat(struct blkid_probe > __u32 buf_size, start_data_sect, next, root_start, root_dir_entries; > > /* sector size check */ >- sector_size = blkid_le16(*((__u16 *) &ms->ms_sector_size)); >+ tmp = (unsigned char *)&ms->ms_sector_size; >+ sector_size = tmp[0] + (tmp[1] << 8); > if (sector_size != 0x200 && sector_size != 0x400 && > sector_size != 0x800 && sector_size != 0x1000) > return 1; > >- dir_entries = blkid_le16(*((__u16 *) &ms->ms_dir_entries)); >+ tmp = (unsigned char *)&ms->ms_dir_entries; >+ dir_entries = tmp[0] + (tmp[1] << 8); > reserved = blkid_le16(ms->ms_reserved); >- sect_count = blkid_le16(*((__u16 *) &ms->ms_sectors)); >+ tmp = (unsigned char *)&ms->ms_sectors; >+ sect_count = tmp[0] + (tmp[1] << 8); > if (sect_count == 0) > sect_count = blkid_le32(ms->ms_total_sect); > >@@ -348,8 +350,8 @@ static int probe_fat(struct blkid_probe > } > > if (vol_label && memcmp(vol_label, no_name, 11)) { >- label = vol_label; >- label_len = figure_label_len(vol_label, 11); >+ if ((label_len = figure_label_len(vol_label, 11))) >+ label = vol_label; > } > > /* We can't just print them as %04X, because they are unaligned */ >@@ -646,6 +648,50 @@ static int probe_oracleasm(struct blkid_ > return 0; > } > >+static int probe_gfs(struct blkid_probe *probe, >+ struct blkid_magic *id __BLKID_ATTR((unused)), >+ unsigned char *buf) >+{ >+ struct gfs2_sb *sbd; >+ const char *label = 0; >+ >+ sbd = (struct gfs2_sb *)buf; >+ >+ if (blkid_be32(sbd->sb_fs_format) == GFS_FORMAT_FS && >+ blkid_be32(sbd->sb_multihost_format) == GFS_FORMAT_MULTI) >+ { >+ blkid_set_tag(probe->dev, "UUID", 0, 0); >+ >+ if (strlen(sbd->sb_locktable)) >+ label = sbd->sb_locktable; >+ blkid_set_tag(probe->dev, "LABEL", label, sizeof(sbd->sb_locktable)); >+ return 0; >+ } >+ return 1; >+} >+ >+static int probe_gfs2(struct blkid_probe *probe, >+ struct blkid_magic *id __BLKID_ATTR((unused)), >+ unsigned char *buf) >+{ >+ struct gfs2_sb *sbd; >+ const char *label = 0; >+ >+ sbd = (struct gfs2_sb *)buf; >+ >+ if (blkid_be32(sbd->sb_fs_format) == GFS2_FORMAT_FS && >+ blkid_be32(sbd->sb_multihost_format) == GFS2_FORMAT_MULTI) >+ { >+ blkid_set_tag(probe->dev, "UUID", 0, 0); >+ >+ if (strlen(sbd->sb_locktable)) >+ label = sbd->sb_locktable; >+ blkid_set_tag(probe->dev, "LABEL", label, sizeof(sbd->sb_locktable)); >+ return 0; >+ } >+ return 1; >+} >+ > /* > * BLKID_BLK_OFFS is at least as large as the highest bim_kboff defined > * in the type_array table below + bim_kbalign. >@@ -673,6 +719,8 @@ static struct blkid_magic type_array[] = > { "reiserfs", 64, 0x34, 8, "ReIsErFs", probe_reiserfs }, > { "reiserfs", 8, 20, 8, "ReIsErFs", probe_reiserfs }, > { "reiser4", 64, 0, 7, "ReIsEr4", probe_reiserfs4 }, >+ { "gfs2", 64, 0, 4, "\x01\x16\x19\x70", probe_gfs2 }, >+ { "gfs", 64, 0, 4, "\x01\x16\x19\x70", probe_gfs }, > { "vfat", 0, 0x52, 5, "MSWIN", probe_fat }, > { "vfat", 0, 0x52, 8, "FAT32 ", probe_fat }, > { "vfat", 0, 0x36, 5, "MSDOS", probe_fat }, >@@ -765,8 +813,8 @@ blkid_dev blkid_verify(blkid_cache cache > return dev; > > DBG(DEBUG_PROBE, >- printf("need to revalidate %s (time since last check %lu)\n", >- dev->bid_name, diff)); >+ printf("need to revalidate %s (time since last check %llu)\n", >+ dev->bid_name, (unsigned long long)diff)); > > if (((probe.fd = open(dev->bid_name, O_RDONLY)) < 0) || > (fstat(probe.fd, &st) < 0)) { >@@ -853,7 +901,7 @@ found_type: > blkid_set_tag(dev, "TYPE", type, 0); > > DBG(DEBUG_PROBE, printf("%s: devno 0x%04llx, type %s\n", >- dev->bid_name, st.st_rdev, type)); >+ dev->bid_name, (long long)st.st_rdev, type)); > } > > if (probe.sbbuf) >Index: e2fsprogs-1.39/lib/blkid/probe.h >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/probe.h 2006-03-10 21:43:35.000000000 +0100 >+++ e2fsprogs-1.39/lib/blkid/probe.h 2006-09-18 17:42:57.000000000 +0200 >@@ -345,6 +345,54 @@ struct iso_volume_descriptor { > unsigned char escape_sequences[8]; > }; > >+/* Common gfs/gfs2 constants: */ >+#define GFS_MAGIC 0x01161970 >+#define GFS_DEFAULT_BSIZE 4096 >+#define GFS_SUPERBLOCK_OFFSET (0x10 * GFS_DEFAULT_BSIZE) >+#define GFS_METATYPE_SB 1 >+#define GFS_FORMAT_SB 100 >+#define GFS_LOCKNAME_LEN 64 >+ >+/* gfs1 constants: */ >+#define GFS_FORMAT_FS 1309 >+#define GFS_FORMAT_MULTI 1401 >+/* gfs2 constants: */ >+#define GFS2_FORMAT_FS 1801 >+#define GFS2_FORMAT_MULTI 1900 >+ >+struct gfs2_meta_header { >+ __u32 mh_magic; >+ __u32 mh_type; >+ __u64 __pad0; /* Was generation number in gfs1 */ >+ __u32 mh_format; >+ __u32 __pad1; /* Was incarnation number in gfs1 */ >+}; >+ >+struct gfs2_inum { >+ __u64 no_formal_ino; >+ __u64 no_addr; >+}; >+ >+struct gfs2_sb { >+ struct gfs2_meta_header sb_header; >+ >+ __u32 sb_fs_format; >+ __u32 sb_multihost_format; >+ __u32 __pad0; /* Was superblock flags in gfs1 */ >+ >+ __u32 sb_bsize; >+ __u32 sb_bsize_shift; >+ __u32 __pad1; /* Was journal segment size in gfs1 */ >+ >+ struct gfs2_inum sb_master_dir; /* Was jindex dinode in gfs1 */ >+ struct gfs2_inum __pad2; /* Was rindex dinode in gfs1 */ >+ struct gfs2_inum sb_root_dir; >+ >+ char sb_lockproto[GFS_LOCKNAME_LEN]; >+ char sb_locktable[GFS_LOCKNAME_LEN]; >+ /* In gfs1, quota and license dinodes followed */ >+}; >+ > /* > * Byte swap functions > */ >@@ -414,7 +462,7 @@ _INLINE_ __u64 blkid_swab64(__u64 val) > > > >-#if __BYTE_ORDER == __BIG_ENDIAN >+#ifdef WORDS_BIGENDIAN > #define blkid_le16(x) blkid_swab16(x) > #define blkid_le32(x) blkid_swab32(x) > #define blkid_le64(x) blkid_swab64(x) >Index: e2fsprogs-1.39/lib/blkid/read.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/read.c 2006-03-13 00:10:58.000000000 +0100 >+++ e2fsprogs-1.39/lib/blkid/read.c 2006-09-18 17:42:57.000000000 +0200 >@@ -452,8 +452,8 @@ static void debug_dump_dev(blkid_dev dev > } > > printf(" dev: name = %s\n", dev->bid_name); >- printf(" dev: DEVNO=\"0x%0llx\"\n", dev->bid_devno); >- printf(" dev: TIME=\"%ld\"\n", dev->bid_time); >+ printf(" dev: DEVNO=\"0x%0llx\"\n", (long long)dev->bid_devno); >+ printf(" dev: TIME=\"%lld\"\n", (long long)dev->bid_time); > printf(" dev: PRI=\"%d\"\n", dev->bid_pri); > printf(" dev: flags = 0x%08X\n", dev->bid_flags); > >Index: e2fsprogs-1.39/lib/blkid/save.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/save.c 2006-03-13 00:14:25.000000000 +0100 >+++ e2fsprogs-1.39/lib/blkid/save.c 2006-09-18 17:42:57.000000000 +0200 >@@ -38,7 +38,7 @@ static int save_dev(blkid_dev dev, FILE > > fprintf(file, > "<device DEVNO=\"0x%04lx\" TIME=\"%ld\"", >- (unsigned long) dev->bid_devno, dev->bid_time); >+ (unsigned long) dev->bid_devno, (long) dev->bid_time); > if (dev->bid_pri) > fprintf(file, " PRI=\"%d\"", dev->bid_pri); > list_for_each(p, &dev->bid_tags) { >Index: e2fsprogs-1.39/lib/blkid/tag.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/tag.c 2006-03-10 22:52:19.000000000 +0100 >+++ e2fsprogs-1.39/lib/blkid/tag.c 2006-09-18 17:42:57.000000000 +0200 >@@ -386,7 +386,7 @@ void usage(char *prog) > fprintf(stderr, "Usage: %s [-f blkid_file] [-m debug_mask] device " > "[type value]\n", > prog); >- fprintf(stderr, "\tList all tags for a device and exit\n", prog); >+ fprintf(stderr, "\tList all tags for a device and exit\n"); > exit(1); > } > >@@ -412,7 +412,7 @@ int main(int argc, char **argv) > case 'm': > blkid_debug_mask = strtoul (optarg, &tmp, 0); > if (*tmp) { >- fprintf(stderr, "Invalid debug mask: %d\n", >+ fprintf(stderr, "Invalid debug mask: %s\n", > optarg); > exit(1); > } >Index: e2fsprogs-1.39/lib/blkid/test_probe.in >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/test_probe.in 2005-09-10 20:08:42.000000000 +0200 >+++ e2fsprogs-1.39/lib/blkid/test_probe.in 2006-09-18 17:42:57.000000000 +0200 >@@ -12,7 +12,7 @@ mkdir -p tests > > for i in $TESTS > do >- echo -n "$i: " >+ printf "%s: " $i > if test ! -f $SRCDIR/tests/$i.img.bz2 -a \ > ! -f $SRCDIR/tests/$i.results ; > then >Index: e2fsprogs-1.39/lib/blkid/tst_types.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/blkid/tst_types.c 2006-04-09 03:53:58.000000000 +0200 >+++ e2fsprogs-1.39/lib/blkid/tst_types.c 2006-09-18 17:42:57.000000000 +0200 >@@ -11,7 +11,10 @@ > > #include "blkid/blkid_types.h" > >-main(int argc, char **argv) >+#include <stdlib.h> >+#include <stdio.h> >+ >+int main(int argc, char **argv) > { > if (sizeof(__u8) != 1) { > printf("Sizeof(__u8) is %d should be 1\n", >Index: e2fsprogs-1.39/lib/e2p/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/lib/e2p/ChangeLog 2006-05-08 19:25:00.000000000 +0200 >+++ e2fsprogs-1.39/lib/e2p/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,13 @@ >+2006-08-30 Theodore Tso <tytso@mit.edu> >+ >+ * percent.c (e2p_percent): Add a new function which accurate and >+ without risk of overflow calculates a percentage of a base >+ number. >+ >+2006-08-05 Theodore Tso <tytso@mit.edu> >+ >+ * pf.c: Add support for EXT4_EXTENTS_FL flag. >+ > 2006-05-08 Theodore Tso <tytso@mit.edu> > > * feature.c: Add support for EXT2_FEATURE_COMPAT_LAZY_BG feature. >Index: e2fsprogs-1.39/lib/e2p/Makefile.in >=================================================================== >--- e2fsprogs-1.39.orig/lib/e2p/Makefile.in 2005-12-30 04:19:32.000000000 +0100 >+++ e2fsprogs-1.39/lib/e2p/Makefile.in 2006-09-18 17:42:57.000000000 +0200 >@@ -19,7 +19,7 @@ all:: e2p.pc > OBJS= feature.o fgetflags.o fsetflags.o fgetversion.o fsetversion.o \ > getflags.o getversion.o hashstr.o iod.o ls.o mntopts.o \ > parse_num.o pe.o pf.o ps.o setflags.o setversion.o uuid.o \ >- ostype.o >+ ostype.o percent.o > > SRCS= $(srcdir)/feature.c $(srcdir)/fgetflags.c \ > $(srcdir)/fsetflags.c $(srcdir)/fgetversion.c \ >@@ -28,7 +28,7 @@ SRCS= $(srcdir)/feature.c $(srcdir)/fge > $(srcdir)/ls.c $(srcdir)/mntopts.c $(srcdir)/parse_num.c \ > $(srcdir)/pe.c $(srcdir)/pf.c $(srcdir)/ps.c \ > $(srcdir)/setflags.c $(srcdir)/setversion.c $(srcdir)/uuid.c \ >- $(srcdir)/ostype.c >+ $(srcdir)/ostype.c $(srcdir)/percent.o > HFILES= e2p.h > > LIBRARY= libe2p >Index: e2fsprogs-1.39/lib/e2p/e2p.h >=================================================================== >--- e2fsprogs-1.39.orig/lib/e2p/e2p.h 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/e2p/e2p.h 2006-09-19 17:02:37.000000000 +0200 >@@ -50,3 +50,5 @@ unsigned long parse_num_blocks(const cha > > char *e2p_os2string(int os_type); > int e2p_string2os(char *str); >+ >+unsigned int e2p_percent(int percent, unsigned int base); >Index: e2fsprogs-1.39/lib/e2p/percent.c >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/lib/e2p/percent.c 2006-09-19 17:02:36.000000000 +0200 >@@ -0,0 +1,62 @@ >+/* >+ * percent.c - Take percentage of a number >+ * >+ * Copyright (C) 2006 Theodore Ts'o <tytso@mit.edu> >+ * >+ * This file can be redistributed under the terms of the GNU Library General >+ * Public License >+ */ >+ >+#include "e2p.h" >+ >+#include <stdlib.h> >+ >+/* >+ * We work really hard to calculate this accurately, while avoiding >+ * an overflow. "Is there a hyphen in anal-retentive?" :-) >+ */ >+unsigned int e2p_percent(int percent, unsigned int base) >+{ >+ unsigned int mask = ~((1 << (sizeof(unsigned int) - 1) * 8) - 1); >+ >+ if (100 % percent == 0) >+ return base / (100 / percent); >+ if (mask & base) >+ return (base / 100) * percent; >+ return base * percent / 100; >+} >+ >+#ifdef DEBUG >+#include <unistd.h> >+#include <stdio.h> >+ >+main(int argc, char **argv) >+{ >+ unsigned int base; >+ int percent; >+ char *p; >+ int log_block_size = 0; >+ >+ if (argc != 3) { >+ fprintf(stderr, "Usage: %s percent base\n", argv[0]); >+ exit(1); >+ } >+ >+ percent = strtoul(argv[1], &p, 0); >+ if (p[0] && p[1]) { >+ fprintf(stderr, "Bad percent: %s\n", argv[1]); >+ exit(1); >+ } >+ >+ base = strtoul(argv[2], &p, 0); >+ if (p[0] && p[1]) { >+ fprintf(stderr, "Bad base: %s\n", argv[2]); >+ exit(1); >+ } >+ >+ printf("%d percent of %u is %u.\n", percent, base, >+ e2p_percent(percent, base)); >+ >+ exit(0); >+} >+#endif >Index: e2fsprogs-1.39/lib/e2p/pf.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/e2p/pf.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/e2p/pf.c 2006-09-18 17:42:57.000000000 +0200 >@@ -44,6 +44,7 @@ static struct flags_name flags_array[] = > { EXT2_INDEX_FL, "I", "Indexed_direcctory" }, > { EXT2_NOTAIL_FL, "t", "No_Tailmerging" }, > { EXT2_TOPDIR_FL, "T", "Top_of_Directory_Hierarchies" }, >+ { EXT4_EXTENTS_FL, "e", "Extents" }, > { 0, NULL, NULL } > }; > >Index: e2fsprogs-1.39/lib/et/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/lib/et/ChangeLog 2005-12-11 04:18:49.000000000 +0100 >+++ e2fsprogs-1.39/lib/et/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,8 @@ >+2006-08-05 Theodore Ts'o <tytso@mit.edu> >+ >+ * compile_et.sh.in: Create the generated .c and .h files read-only >+ to remind developers they shouldn't edit them. >+ > 2005-12-10 Theodore Ts'o <tytso@mit.edu> > > * Makefile.in: Add a dependency to make sure that the >Index: e2fsprogs-1.39/lib/et/compile_et.sh.in >=================================================================== >--- e2fsprogs-1.39.orig/lib/et/compile_et.sh.in 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/et/compile_et.sh.in 2006-09-18 17:42:57.000000000 +0200 >@@ -34,13 +34,15 @@ fi > > $AWK -f "${DIR}/et_h.awk" "outfile=${BASE}.h.$$" "outfn=${BASE}.h" "$ROOT.et" > if test -f ${BASE}.h && cmp -s ${BASE}.h.$$ ${BASE}.h ; then >- rm ${BASE}.h.$$ >+ rm -f ${BASE}.h.$$ > else >- mv ${BASE}.h.$$ ${BASE}.h >+ mv -f ${BASE}.h.$$ ${BASE}.h >+ chmod -w ${BASE}.h > fi > $AWK -f "${DIR}/et_c.awk" "outfile=${BASE}.c.$$" "outfn=${BASE}.c" "$ROOT.et" > if test -f ${BASE}.c && cmp -s ${BASE}.c.$$ ${BASE}.c ; then >- rm ${BASE}.c.$$ >+ rm -f ${BASE}.c.$$ > else >- mv ${BASE}.c.$$ ${BASE}.c >+ mv -f ${BASE}.c.$$ ${BASE}.c >+ chmod -w ${BASE}.c > fi >Index: e2fsprogs-1.39/lib/ext2fs/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/ChangeLog 2006-05-22 01:24:50.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,68 @@ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * initialize.c (ext2fs_initialize): Make sure inode count does >+ not overflow 32 bits. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * alloc_tables.c (ext2fs_allocate_group_table): >+ * check_desc.c (ext2fs_check_desc): >+ Use new inlines to calculate group first & last blocks. >+ * ext2fs.h: >+ Create new inlines to calculate first/last group blocks. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * bmove.c (process_block): >+ * getsize.c (main): >+ * icount.c (ext2fs_create_icount2, insert_icount_el): >+ * tst_badblocks.c (print_list, validate_test_seq, do_test_seq): >+ * tst_badblocks.c (invalid_proc): >+ * tst_getsize.c (main): >+ * tst_iscan.c (check_map): >+ * unix_io.c (raw_read_blk, unix_read_blk): >+ * write_bb_file.c (ext2fs_write_bb_FILE): Fix printf formats. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * closefs.c (write_backup_super): >+ * initialize.c (ext2fs_initialize): Remove unused variables. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * check_desc.c (ext2fs_check_desc): avoid overflows when iterating >+ over group descriptors on very large filesystems. >+ >+2006-08-30 Theodore Tso <tytso@mit.edu> >+ >+ * bitmaps.c (ext2fs_set_bitmap_padding): Fix potential overflow >+ problems when the number of blocks is close to 2**31. >+ >+ * ext2fs.h (ext2fs_div_ceil): Add new function which safely >+ calculates an integer division where the result is always >+ rounded up while avoiding overflow errors. >+ >+ * initialize.c (calc_reserved_gdt_blocks, ext2fs_initialize): >+ * openfs.c (ext2fs_open2): Use ext2fs_div_ceil() instead of a >+ using an open-coded expression which was subject to >+ overflows. >+ >+2006-08-06 Andreas Dilger <adilger@clusterfs.com> >+ >+ * bitops.h (ext2fs_cpu_to_le32, ext2fs_le64_to_cpu, >+ ext2fs_swab64): Add 64-bit byte swapping functions >+ >+2006-08-05 Theodore Tso <tytso@mit.edu> >+ >+ * ext2_fs.h (EXT4_EXTENTS_FL): Rename EXT3_EXTENTS_FL to >+ EXT4_EXTENTS_FL, and add EXT4_EXTENTS_FL to user visible >+ flags list. >+ >+2006-07-15 Theodore Tso <tytso@mit.edu> >+ >+ * ext2fs.h: Remove unneeded #ifdef since EXT2_DYNAMIC_REV is >+ always defined in the e2fsprogs-provided ext2_fs.h >+ > 2006-05-21 Theodore Tso <tytso@mit.edu> > > * openfs.c (ext2fs_open2): Fix type warning problem with sizeof() >Index: e2fsprogs-1.39/lib/ext2fs/Makefile.pq >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/lib/ext2fs/Makefile.pq 2006-09-18 17:42:57.000000000 +0200 >@@ -0,0 +1,49 @@ >+TOPSRC=..\.. >+LIBNAME=EXT2.LIB >+OBJFILE=EXT2.LST >+ >+OBJS= alloc.obj \ >+ alloc_tables.obj \ >+ badblocks.obj \ >+ bb_compat.obj \ >+ bb_inode.obj \ >+ bitmaps.obj \ >+ bitops.obj \ >+ block.obj \ >+ bmap.obj \ >+ bmove.obj \ >+ check_desc.obj \ >+ closefs.obj \ >+ cmp_bitmaps.obj \ >+ dblist.obj \ >+ dblist_dir.obj \ >+ dirblock.obj \ >+ dir_iterate.obj \ >+ dupfs.obj \ >+ expanddir.obj \ >+ fileio.obj \ >+ freefs.obj \ >+ get_pathname.obj \ >+ icount.obj \ >+ initialize.obj \ >+ inline.obj \ >+ inode.obj \ >+ ismounted.obj \ >+ link.obj \ >+ lookup.obj \ >+ mkdir.obj \ >+ namei.obj \ >+ native.obj \ >+ newdir.obj \ >+ openfs.obj \ >+ read_bb.obj \ >+ read_bb_file.obj \ >+ rs_bitmap.obj \ >+ rw_bitmaps.obj \ >+ swapfs.obj \ >+ unlink.obj \ >+ valid_blk.obj \ >+ version.obj >+ >+!include $(TOPSRC)\powerquest\MCONFIG >+ >Index: e2fsprogs-1.39/lib/ext2fs/alloc_tables.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/alloc_tables.c 2006-05-13 03:47:17.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/alloc_tables.c 2006-09-19 17:02:36.000000000 +0200 >@@ -34,12 +34,8 @@ errcode_t ext2fs_allocate_group_table(ex > blk_t group_blk, start_blk, last_blk, new_blk, blk; > int j; > >- group_blk = fs->super->s_first_data_block + >- (group * fs->super->s_blocks_per_group); >- >- last_blk = group_blk + fs->super->s_blocks_per_group; >- if (last_blk >= fs->super->s_blocks_count) >- last_blk = fs->super->s_blocks_count - 1; >+ group_blk = ext2fs_group_first_block(fs, group); >+ last_blk = ext2fs_group_last_block(fs, group); > > if (!bmap) > bmap = fs->block_map; >@@ -54,8 +50,8 @@ errcode_t ext2fs_allocate_group_table(ex > return retval; > start_blk += fs->inode_blocks_per_group; > start_blk += ((fs->stride * group) % >- (last_blk - start_blk)); >- if (start_blk > last_blk) >+ (last_blk - start_blk + 1)); >+ if (start_blk >= last_blk) > start_blk = group_blk; > } else > start_blk = group_blk; >Index: e2fsprogs-1.39/lib/ext2fs/bitmaps.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/bitmaps.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/bitmaps.c 2006-09-19 17:05:57.000000000 +0200 >@@ -102,7 +102,10 @@ void ext2fs_set_bitmap_padding(ext2fs_ge > { > __u32 i, j; > >- for (i=map->end+1, j = i - map->start; i <= map->real_end; i++, j++) >+ /* Protect loop from wrap-around if map->real_end is maxed */ >+ for (i=map->end+1, j = i - map->start; >+ i <= map->real_end && i > map->end; >+ i++, j++) > ext2fs_set_bit(j, map->bitmap); > > return; >Index: e2fsprogs-1.39/lib/ext2fs/bitops.h >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/bitops.h 2006-03-29 19:51:53.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/bitops.h 2006-09-19 17:02:36.000000000 +0200 >@@ -23,6 +23,8 @@ extern __u16 ext2fs_swab16(__u16 val); > extern __u32 ext2fs_swab32(__u32 val); > > #ifdef WORDS_BIGENDIAN >+#define ext2fs_cpu_to_le64(x) ext2fs_swab64((x)) >+#define ext2fs_le64_to_cpu(x) ext2fs_swab64((x)) > #define ext2fs_cpu_to_le32(x) ext2fs_swab32((x)) > #define ext2fs_le32_to_cpu(x) ext2fs_swab32((x)) > #define ext2fs_cpu_to_le16(x) ext2fs_swab16((x)) >@@ -32,6 +34,8 @@ extern __u32 ext2fs_swab32(__u32 val); > #define ext2fs_cpu_to_be16(x) ((__u16)(x)) > #define ext2fs_be16_to_cpu(x) ((__u16)(x)) > #else >+#define ext2fs_cpu_to_le64(x) ((__u64)(x)) >+#define ext2fs_le64_to_cpu(x) ((__u64)(x)) > #define ext2fs_cpu_to_le32(x) ((__u32)(x)) > #define ext2fs_le32_to_cpu(x) ((__u32)(x)) > #define ext2fs_cpu_to_le16(x) ((__u16)(x)) >@@ -286,6 +290,12 @@ _INLINE_ __u16 ext2fs_swab16(__u16 val) > } > #endif > >+_INLINE_ __u64 ext2fs_swab64(__u64 val) >+{ >+ return (ext2fs_swab32(val >> 32) | >+ (((__u64)ext2fs_swab32(val & 0xFFFFFFFFUL)) << 32)); >+} >+ > #undef EXT2FS_ADDR > > #endif /* i386 */ >Index: e2fsprogs-1.39/lib/ext2fs/bmove.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/bmove.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/bmove.c 2006-09-19 17:02:36.000000000 +0200 >@@ -73,7 +73,7 @@ static int process_block(ext2_filsys fs, > ext2fs_mark_block_bitmap(pb->alloc_map, block); > ret = BLOCK_CHANGED; > if (pb->flags & EXT2_BMOVE_DEBUG) >- printf("ino=%ld, blockcnt=%lld, %d->%d\n", pb->ino, >+ printf("ino=%ld, blockcnt=%lld, %u->%u\n", pb->ino, > blockcnt, orig, block); > } > if (pb->add_dir) { >Index: e2fsprogs-1.39/lib/ext2fs/check_desc.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/check_desc.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/check_desc.c 2006-09-19 17:02:36.000000000 +0200 >@@ -32,37 +32,37 @@ > errcode_t ext2fs_check_desc(ext2_filsys fs) > { > dgrp_t i; >- blk_t block = fs->super->s_first_data_block; >- blk_t next; >+ blk_t first_block = fs->super->s_first_data_block; >+ blk_t last_block; > > EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS); > > for (i = 0; i < fs->group_desc_count; i++) { >- next = block + fs->super->s_blocks_per_group; >+ first_block = ext2fs_group_first_block(fs, i); >+ last_block = ext2fs_group_last_block(fs, i); >+ > /* > * Check to make sure block bitmap for group is > * located within the group. > */ >- if (fs->group_desc[i].bg_block_bitmap < block || >- fs->group_desc[i].bg_block_bitmap >= next) >+ if (fs->group_desc[i].bg_block_bitmap < first_block || >+ fs->group_desc[i].bg_block_bitmap > last_block) > return EXT2_ET_GDESC_BAD_BLOCK_MAP; > /* > * Check to make sure inode bitmap for group is > * located within the group > */ >- if (fs->group_desc[i].bg_inode_bitmap < block || >- fs->group_desc[i].bg_inode_bitmap >= next) >+ if (fs->group_desc[i].bg_inode_bitmap < first_block || >+ fs->group_desc[i].bg_inode_bitmap > last_block) > return EXT2_ET_GDESC_BAD_INODE_MAP; > /* > * Check to make sure inode table for group is located > * within the group > */ >- if (fs->group_desc[i].bg_inode_table < block || >+ if (fs->group_desc[i].bg_inode_table < first_block || > ((fs->group_desc[i].bg_inode_table + >- fs->inode_blocks_per_group) >= next)) >+ fs->inode_blocks_per_group) > last_block)) > return EXT2_ET_GDESC_BAD_INODE_TABLE; >- >- block = next; > } > return 0; > } >Index: e2fsprogs-1.39/lib/ext2fs/closefs.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/closefs.c 2005-11-09 23:48:39.000000000 +0100 >+++ e2fsprogs-1.39/lib/ext2fs/closefs.c 2006-09-19 17:02:36.000000000 +0200 >@@ -206,7 +206,6 @@ static errcode_t write_backup_super(ext2 > errcode_t ext2fs_flush(ext2_filsys fs) > { > dgrp_t i,j; >- blk_t group_block; > errcode_t retval; > unsigned long fs_state; > struct ext2_super_block *super_shadow = 0; >@@ -275,7 +274,6 @@ errcode_t ext2fs_flush(ext2_filsys fs) > * Write out the master group descriptors, and the backup > * superblocks and group descriptors. > */ >- group_block = fs->super->s_first_data_block; > group_ptr = (char *) group_shadow; > if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) > old_desc_blocks = fs->super->s_first_meta_bg; >Index: e2fsprogs-1.39/lib/ext2fs/ext2_ext_attr.h >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/ext2_ext_attr.h 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/ext2_ext_attr.h 2006-09-19 17:05:57.000000000 +0200 >@@ -6,6 +6,8 @@ > (C) 2000 Andreas Gruenbacher, <a.gruenbacher@computer.org> > */ > >+#ifndef _EXT2_EXT_ATTR_H >+#define _EXT2_EXT_ATTR_H > /* Magic value in attribute blocks */ > #define EXT2_EXT_ATTR_MAGIC_v1 0xEA010000 > #define EXT2_EXT_ATTR_MAGIC 0xEA020000 >@@ -66,4 +68,4 @@ extern void ext2_ext_attr_done(void); > # define ext2_set_ext_attr NULL > # endif > #endif /* __KERNEL__ */ >- >+#endif /* _EXT2_EXT_ATTR_H */ >Index: e2fsprogs-1.39/lib/ext2fs/ext2_fs.h >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/ext2_fs.h 2006-05-04 18:06:34.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/ext2_fs.h 2006-09-19 17:05:58.000000000 +0200 >@@ -236,10 +236,10 @@ struct ext2_dx_countlimit { > #define EXT2_NOTAIL_FL 0x00008000 /* file tail should not be merged */ > #define EXT2_DIRSYNC_FL 0x00010000 /* Synchronous directory modifications */ > #define EXT2_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/ >-#define EXT3_EXTENTS_FL 0x00080000 /* Inode uses extents */ >+#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */ > #define EXT2_RESERVED_FL 0x80000000 /* reserved for ext2 lib */ > >-#define EXT2_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */ >+#define EXT2_FL_USER_VISIBLE 0x000BDFFF /* User visible flags */ > #define EXT2_FL_USER_MODIFIABLE 0x000080FF /* User modifiable flags */ > > /* >Index: e2fsprogs-1.39/lib/ext2fs/ext2fs.h >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/ext2fs.h 2006-05-04 18:18:39.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/ext2fs.h 2006-09-19 17:05:58.000000000 +0200 >@@ -117,15 +117,11 @@ typedef struct ext2fs_struct_generic_bit > typedef struct ext2fs_struct_generic_bitmap *ext2fs_inode_bitmap; > typedef struct ext2fs_struct_generic_bitmap *ext2fs_block_bitmap; > >-#ifdef EXT2_DYNAMIC_REV > #define EXT2_FIRST_INODE(s) EXT2_FIRST_INO(s) >-#else >-#define EXT2_FIRST_INODE(s) EXT2_FIRST_INO >-#define EXT2_INODE_SIZE(s) sizeof(struct ext2_inode) >-#endif >+ > > /* >- * badblocks list definitions >+ * Badblocks list definitions > */ > > typedef struct ext2_struct_u32_list *ext2_badblocks_list; >@@ -967,8 +963,11 @@ extern int ext2fs_test_ib_dirty(ext2_fil > extern int ext2fs_test_bb_dirty(ext2_filsys fs); > extern int ext2fs_group_of_blk(ext2_filsys fs, blk_t blk); > extern int ext2fs_group_of_ino(ext2_filsys fs, ext2_ino_t ino); >+extern blk_t ext2fs_group_first_block(ext2_filsys fs, dgrp_t group); >+extern blk_t ext2fs_group_last_block(ext2_filsys fs, dgrp_t group); > extern blk_t ext2fs_inode_data_blocks(ext2_filsys fs, > struct ext2_inode *inode); >+extern unsigned int ext2fs_div_ceil(unsigned int a, unsigned int b); > > /* > * The actual inlined functions definitions themselves... >@@ -1130,12 +1129,42 @@ _INLINE_ int ext2fs_group_of_ino(ext2_fi > return (ino - 1) / fs->super->s_inodes_per_group; > } > >+/* >+ * Return the first block (inclusive) in a group >+ */ >+_INLINE_ blk_t ext2fs_group_first_block(ext2_filsys fs, dgrp_t group) >+{ >+ return fs->super->s_first_data_block + >+ (group * fs->super->s_blocks_per_group); >+} >+ >+/* >+ * Return the last block (inclusive) in a group >+ */ >+_INLINE_ blk_t ext2fs_group_last_block(ext2_filsys fs, dgrp_t group) >+{ >+ return (group == fs->group_desc_count - 1 ? >+ fs->super->s_blocks_count - 1 : >+ ext2fs_group_first_block(fs, group) + >+ (fs->super->s_blocks_per_group - 1)); >+} >+ > _INLINE_ blk_t ext2fs_inode_data_blocks(ext2_filsys fs, > struct ext2_inode *inode) > { > return inode->i_blocks - > (inode->i_file_acl ? fs->blocksize >> 9 : 0); > } >+ >+/* >+ * This is an efficient, overflow safe way of calculating ceil((1.0 * a) / b) >+ */ >+_INLINE_ unsigned int ext2fs_div_ceil(unsigned int a, unsigned int b) >+{ >+ if (!a) >+ return 0; >+ return ((a - 1) / b) + 1; >+} > #undef _INLINE_ > #endif > >Index: e2fsprogs-1.39/lib/ext2fs/getsize.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/getsize.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/getsize.c 2006-09-18 17:42:57.000000000 +0200 >@@ -44,6 +44,7 @@ > #if HAVE_SYS_STAT_H > #include <sys/stat.h> > #endif >+#include <ctype.h> > > #if defined(__linux__) && defined(_IO) && !defined(BLKGETSIZE) > #define BLKGETSIZE _IO(0x12,96) /* return device size */ >@@ -302,7 +303,7 @@ int main(int argc, char **argv) > "while calling ext2fs_get_device_size"); > exit(1); > } >- printf("Device %s has %d 1k blocks.\n", argv[1], blocks); >+ printf("Device %s has %u 1k blocks.\n", argv[1], blocks); > exit(0); > } > #endif >Index: e2fsprogs-1.39/lib/ext2fs/icount.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/icount.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/icount.c 2006-09-18 17:42:57.000000000 +0200 >@@ -116,7 +116,7 @@ errcode_t ext2fs_create_icount2(ext2_fil > > bytes = (size_t) (icount->size * sizeof(struct ext2_icount_el)); > #if 0 >- printf("Icount allocated %d entries, %d bytes.\n", >+ printf("Icount allocated %u entries, %d bytes.\n", > icount->size, bytes); > #endif > retval = ext2fs_get_mem(bytes, &icount->list); >@@ -176,7 +176,7 @@ static struct ext2_icount_el *insert_ico > if (new_size < (icount->size + 100)) > new_size = icount->size + 100; > #if 0 >- printf("Reallocating icount %d entries...\n", new_size); >+ printf("Reallocating icount %u entries...\n", new_size); > #endif > retval = ext2fs_resize_mem((size_t) icount->size * > sizeof(struct ext2_icount_el), >Index: e2fsprogs-1.39/lib/ext2fs/initialize.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/initialize.c 2006-03-19 00:59:47.000000000 +0100 >+++ e2fsprogs-1.39/lib/ext2fs/initialize.c 2006-09-19 17:02:36.000000000 +0200 >@@ -77,8 +77,8 @@ static unsigned int calc_reserved_gdt_bl > */ > if (sb->s_blocks_count < max_blocks / 1024) > max_blocks = sb->s_blocks_count * 1024; >- rsv_groups = (max_blocks - sb->s_first_data_block + bpg - 1) / bpg; >- rsv_gdb = (rsv_groups + gdpb - 1) / gdpb - fs->desc_blocks; >+ rsv_groups = ext2fs_div_ceil(max_blocks - sb->s_first_data_block, bpg); >+ rsv_gdb = ext2fs_div_ceil(rsv_groups, gdpb) - fs->desc_blocks; > if (rsv_gdb > EXT2_ADDR_PER_BLOCK(sb)) > rsv_gdb = EXT2_ADDR_PER_BLOCK(sb); > #ifdef RES_GDT_DEBUG >@@ -99,7 +99,6 @@ errcode_t ext2fs_initialize(const char * > int frags_per_block; > unsigned int rem; > unsigned int overhead = 0; >- blk_t group_block; > unsigned int ipg; > dgrp_t i; > blk_t numblocks; >@@ -205,17 +204,15 @@ errcode_t ext2fs_initialize(const char * > } > > retry: >- fs->group_desc_count = (super->s_blocks_count - >- super->s_first_data_block + >- EXT2_BLOCKS_PER_GROUP(super) - 1) >- / EXT2_BLOCKS_PER_GROUP(super); >+ fs->group_desc_count = ext2fs_div_ceil(super->s_blocks_count - >+ super->s_first_data_block, >+ EXT2_BLOCKS_PER_GROUP(super)); > if (fs->group_desc_count == 0) { > retval = EXT2_ET_TOOSMALL; > goto cleanup; > } >- fs->desc_blocks = (fs->group_desc_count + >- EXT2_DESC_PER_BLOCK(super) - 1) >- / EXT2_DESC_PER_BLOCK(super); >+ fs->desc_blocks = ext2fs_div_ceil(fs->group_desc_count, >+ EXT2_DESC_PER_BLOCK(super)); > > i = fs->blocksize >= 4096 ? 1 : 4096 / fs->blocksize; > set_field(s_inodes_count, super->s_blocks_count / i); >@@ -233,8 +230,7 @@ retry: > * should be. But make sure that we don't allocate more than > * one bitmap's worth of inodes each group. > */ >- ipg = (super->s_inodes_count + fs->group_desc_count - 1) / >- fs->group_desc_count; >+ ipg = ext2fs_div_ceil(super->s_inodes_count, fs->group_desc_count); > if (ipg > fs->blocksize * 8) { > if (super->s_blocks_per_group >= 256) { > /* Try again with slightly different parameters */ >@@ -250,9 +246,8 @@ retry: > if (ipg > (unsigned) EXT2_MAX_INODES_PER_GROUP(super)) > ipg = EXT2_MAX_INODES_PER_GROUP(super); > >+ipg_retry: > super->s_inodes_per_group = ipg; >- if (super->s_inodes_count > ipg * fs->group_desc_count) >- super->s_inodes_count = ipg * fs->group_desc_count; > > /* > * Make sure the number of inodes per group completely fills >@@ -280,6 +275,10 @@ retry: > /* > * adjust inode count to reflect the adjusted inodes_per_group > */ >+ if ((__u64)super->s_inodes_per_group * fs->group_desc_count > ~0U) { >+ ipg--; >+ goto ipg_retry; >+ } > super->s_inodes_count = super->s_inodes_per_group * > fs->group_desc_count; > super->s_free_inodes_count = super->s_inodes_count; >@@ -363,7 +362,6 @@ retry: > * inode table have not been allocated (and in fact won't be > * by this routine), they are accounted for nevertheless. > */ >- group_block = super->s_first_data_block; > super->s_free_blocks_count = 0; > for (i = 0; i < fs->group_desc_count; i++) { > numblocks = ext2fs_reserve_super_and_bgd(fs, i, fs->block_map); >@@ -373,8 +371,6 @@ retry: > fs->group_desc[i].bg_free_inodes_count = > fs->super->s_inodes_per_group; > fs->group_desc[i].bg_used_dirs_count = 0; >- >- group_block += super->s_blocks_per_group; > } > > ext2fs_mark_super_dirty(fs); >Index: e2fsprogs-1.39/lib/ext2fs/ismounted.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/ismounted.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/ismounted.c 2006-09-18 17:42:57.000000000 +0200 >@@ -325,9 +325,9 @@ errcode_t ext2fs_check_mount_point(const > *mount_flags |= EXT2_MF_BUSY; > } else > close(fd); >+#endif > > return 0; >-#endif > } > > /* >Index: e2fsprogs-1.39/lib/ext2fs/openfs.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/openfs.c 2006-05-22 01:23:27.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/openfs.c 2006-09-19 17:02:36.000000000 +0200 >@@ -258,12 +258,11 @@ errcode_t ext2fs_open2(const char *name, > retval = EXT2_ET_CORRUPT_SUPERBLOCK; > goto cleanup; > } >- fs->group_desc_count = (fs->super->s_blocks_count - >- fs->super->s_first_data_block + >- blocks_per_group - 1) / blocks_per_group; >- fs->desc_blocks = (fs->group_desc_count + >- EXT2_DESC_PER_BLOCK(fs->super) - 1) >- / EXT2_DESC_PER_BLOCK(fs->super); >+ fs->group_desc_count = ext2fs_div_ceil(fs->super->s_blocks_count - >+ fs->super->s_first_data_block, >+ blocks_per_group); >+ fs->desc_blocks = ext2fs_div_ceil(fs->group_desc_count, >+ EXT2_DESC_PER_BLOCK(fs->super)); > retval = ext2fs_get_mem(fs->desc_blocks * fs->blocksize, > &fs->group_desc); > if (retval) >Index: e2fsprogs-1.39/lib/ext2fs/tst_badblocks.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/tst_badblocks.c 2005-12-19 05:25:18.000000000 +0100 >+++ e2fsprogs-1.39/lib/ext2fs/tst_badblocks.c 2006-09-19 17:02:36.000000000 +0200 >@@ -103,7 +103,7 @@ static void print_list(badblocks_list bb > } > ok = i = 1; > while (ext2fs_badblocks_list_iterate(iter, &blk)) { >- printf("%d ", blk); >+ printf("%u ", blk); > if (i++ != blk) > ok = 0; > } >@@ -130,7 +130,7 @@ static void validate_test_seq(badblocks_ > ok = 0; > test_fail++; > } >- printf("\tblock %d is %s --- %s\n", vec[i], >+ printf("\tblock %u is %s --- %s\n", vec[i], > match ? "present" : "absent", > ok ? "OK" : "NOT OK"); > } >@@ -145,7 +145,7 @@ static void do_test_seq(badblocks_list b > case ADD_BLK: > ext2fs_badblocks_list_add(bb, vec[i]); > match = ext2fs_badblocks_list_test(bb, vec[i]); >- printf("Adding block %d --- now %s\n", vec[i], >+ printf("Adding block %u --- now %s\n", vec[i], > match ? "present" : "absent"); > if (!match) { > printf("FAILURE!\n"); >@@ -155,7 +155,7 @@ static void do_test_seq(badblocks_list b > case DEL_BLK: > ext2fs_badblocks_list_del(bb, vec[i]); > match = ext2fs_badblocks_list_test(bb, vec[i]); >- printf("Removing block %d --- now %s\n", vec[i], >+ printf("Removing block %u --- now %s\n", vec[i], > ext2fs_badblocks_list_test(bb, vec[i]) ? > "present" : "absent"); > if (match) { >@@ -209,7 +209,7 @@ static void invalid_proc(ext2_filsys fs, > printf("Expected invalid block\n"); > test_expected_fail++; > } else { >- printf("Invalid block #: %d\n", blk); >+ printf("Invalid block #: %u\n", blk); > test_fail++; > } > } >Index: e2fsprogs-1.39/lib/ext2fs/tst_getsize.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/tst_getsize.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/tst_getsize.c 2006-09-18 17:42:57.000000000 +0200 >@@ -39,6 +39,6 @@ int main(int argc, const char *argv[]) > com_err(argv[0], retval, "while getting device size"); > exit(1); > } >- printf("%s is device has %d blocks.\n", argv[1], blocks); >+ printf("%s is device has %u blocks.\n", argv[1], blocks); > return 0; > } >Index: e2fsprogs-1.39/lib/ext2fs/tst_iscan.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/tst_iscan.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/tst_iscan.c 2006-09-19 17:05:57.000000000 +0200 >@@ -175,7 +175,7 @@ static void check_map(void) > > for (i=0; test_vec[i]; i++) { > if (ext2fs_test_block_bitmap(touched_map, test_vec[i])) { >- printf("Bad block was touched --- %d\n", test_vec[i]); >+ printf("Bad block was touched --- %u\n", test_vec[i]); > failed++; > first_no_comma = 1; > } >@@ -199,7 +199,7 @@ static void check_map(void) > first = 0; > else > printf(", "); >- printf("%d", i); >+ printf("%u", i); > } > } > printf("\n"); >Index: e2fsprogs-1.39/lib/ext2fs/unix_io.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/unix_io.c 2006-03-18 04:46:30.000000000 +0100 >+++ e2fsprogs-1.39/lib/ext2fs/unix_io.c 2006-09-19 17:02:37.000000000 +0200 >@@ -170,8 +170,8 @@ static errcode_t raw_read_blk(io_channel > size = (count < 0) ? -count : count * channel->block_size; > location = ((ext2_loff_t) block * channel->block_size) + data->offset; > #ifdef DEBUG >- printf("count=%d, size=%d, block=%d, blk_size=%d, location=%lx\n", >- count, size, block, channel->block_size, location); >+ printf("count=%d, size=%d, block=%lu, blk_size=%d, location=%llx\n", >+ count, size, block, channel->block_size, (long long)location); > #endif > if (ext2fs_llseek(data->dev, location, SEEK_SET) != location) { > retval = errno ? errno : EXT2_ET_LLSEEK_FAILED; >@@ -553,7 +553,7 @@ static errcode_t unix_read_blk(io_channe > /* If it's in the cache, use it! */ > if ((cache = find_cached_block(data, block, &reuse[0]))) { > #ifdef DEBUG >- printf("Using cached block %d\n", block); >+ printf("Using cached block %lu\n", block); > #endif > memcpy(cp, cache->buf, channel->block_size); > count--; >@@ -569,7 +569,7 @@ static errcode_t unix_read_blk(io_channe > if (find_cached_block(data, block+i, &reuse[i])) > break; > #ifdef DEBUG >- printf("Reading %d blocks starting at %d\n", i, block); >+ printf("Reading %d blocks starting at %lu\n", i, block); > #endif > if ((retval = raw_read_blk(channel, data, block, i, cp))) > return retval; >Index: e2fsprogs-1.39/lib/ext2fs/write_bb_file.c >=================================================================== >--- e2fsprogs-1.39.orig/lib/ext2fs/write_bb_file.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ext2fs/write_bb_file.c 2006-09-19 17:02:36.000000000 +0200 >@@ -27,7 +27,7 @@ errcode_t ext2fs_write_bb_FILE(ext2_badb > return retval; > > while (ext2fs_badblocks_list_iterate(bb_iter, &blk)) { >- fprintf(f, "%d\n", blk); >+ fprintf(f, "%u\n", blk); > } > ext2fs_badblocks_list_iterate_end(bb_iter); > return 0; >Index: e2fsprogs-1.39/lib/ss/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/lib/ss/ChangeLog 2005-12-11 04:18:57.000000000 +0100 >+++ e2fsprogs-1.39/lib/ss/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,8 @@ >+2006-08-05 Theodore Tso <tytso@mit.edu> >+ >+ * mk_cmds.sh.in: Create the generated .c files read-only to remind >+ developers they shouldn't edit them. >+ > 2005-12-10 Theodore Ts'o <tytso@mit.edu> > > * Makefile.in: Add a dependency to make sure that the >Index: e2fsprogs-1.39/lib/ss/mk_cmds.sh.in >=================================================================== >--- e2fsprogs-1.39.orig/lib/ss/mk_cmds.sh.in 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/lib/ss/mk_cmds.sh.in 2006-09-18 17:42:57.000000000 +0200 >@@ -43,6 +43,7 @@ if grep "^#__ERROR_IN_FILE" "${TMP}" > / > exit 1 > else > rm -f "${BASE}.c" >- mv "${TMP}" "${BASE}.c" >+ mv -f "${TMP}" "${BASE}.c" >+ chmod -w "${BASE}.c" > exit 0 > fi >Index: e2fsprogs-1.39/misc/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/misc/ChangeLog 2006-05-29 17:03:04.000000000 +0200 >+++ e2fsprogs-1.39/misc/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,86 @@ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * mke2fs.c (PRS): Avoid overflow in megs calculation. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * mke2fs.c (PRS): Disallow > 2^32 inodes at mkfs time. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * dumpe2fs.c (list_desc): Use new inlines to calculate group >+ first & last blocks. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * dumpe2fs.c (list_bad_blocks): >+ * e2image.c (output_meta_data_blocks, write_raw_image_file): >+ * mke2fs.c (test_disk, handle_bad_blocks): Fix printf formats. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * e2image.c (mark_table_blocks): Remove unused first_block >+ incrementing from loop. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * dumpe2fs.c (list_desc, mark_table_blocks): Avoid overflows when >+ iterating over group descriptors on very large >+ filesystems. >+ >+ * e2image.c (mark_table_blocks): Change block group loop to use a >+ common pattern of first_block/last_block, etc. >+ >+2006-09-12 Theodore Tso <tytso@mit.edu> >+ >+ * tune2fs.8.in, uuidgen.1: Fix minor grammar problems. Addresses >+ Debian Bug #373004) >+ >+2006-08-30 Theodore Tso <tytso@mit.edu> >+ >+ * tune2fs.c (main), mke2fs.c (PRS): Use e2p_percent to properly >+ calculate the number of reserved blocks without worrying >+ about overflow. >+ >+ * Makefile.in (resize2fs): Remove unused (and bogus) resize2fs >+ rule, which shouldn't be in misc/Makefile.in >+ >+ * mke2fs.c (parse_extended_opts): Use ext2fs_div_ceil() instead of >+ a using an open-coded expression which was subject to >+ overflows. >+ >+ * filefrag.c (div_ceil, frag_report): Fix potential overflow for >+ really big filesystems. >+ >+2006-08-06 Theodore Tso <tytso@mit.edu> >+ >+ * findsuper.c (main): Improve findsuper program by printing the >+ uuid and label from the superblocks, as well as the >+ starting and ending offsets of the filesystem given the >+ information in the superblock. Omit by default printing >+ superblocks that are likely found in located in an ext3 >+ journal unless an explicit -j option is given. >+ >+2006-08-05 Theodore Tso <tytso@mit.edu> >+ >+ * mke2fs.c (PRS), util.c (check_mount): In order to force mke2fs >+ to create a filesystem even though it appears to be in use >+ or mounted, the -F (force) flag must be specified twice. >+ >+ * filefrag.c: Change EXT3_EXTENTS_FL to EXT4_EXTENTS_FL >+ >+2006-07-15 Theodore Tso <tytso@mit.edu> >+ >+ * mke2fs.c (PRS): Look up the default inode size in the >+ mke2fs.conf file. >+ >+ * mke2fs.8.in, mke2fs.c(usage): Document the -I option. >+ >+ * mke2fs.conf.5.in: Document the inode_size relation in [defaults] >+ and [fs_types]. >+ >+ * chattr.1.in: Fix spelling typo >+ > 2006-05-29 Theodore Tso <tytso@mit.edu> > > * filefrag.c: Add support for ancient Linux systems that do not >Index: e2fsprogs-1.39/misc/Makefile.in >=================================================================== >--- e2fsprogs-1.39.orig/misc/Makefile.in 2006-03-27 07:58:10.000000000 +0200 >+++ e2fsprogs-1.39/misc/Makefile.in 2006-09-18 17:42:57.000000000 +0200 >@@ -117,10 +117,6 @@ mke2fs.static: $(MKE2FS_OBJS) $(STATIC_D > $(STATIC_LIBS) $(STATIC_LIBE2P) $(STATIC_LIBBLKID) \ > $(STATIC_LIBUUID) $(LIBINTL) > >-resize2fs: resize2fs.o $(DEPLIBS) >- @echo " LD $@" >- @$(CC) $(ALL_LDFLAGS) -o resize2fs resize2fs.o $(LIBS) $(LIBINTL) >- > chattr: $(CHATTR_OBJS) $(DEPLIBS_E2P) > @echo " LD $@" > @$(CC) $(ALL_LDFLAGS) -o chattr $(CHATTR_OBJS) $(LIBS_E2P) $(LIBINTL) >@@ -288,10 +284,10 @@ install: all $(SMANPAGES) $(UMANPAGES) i > echo " INSTALL_DATA $(man5dir)/$$i"; \ > $(INSTALL_DATA) $$i $(DESTDIR)$(man5dir)/$$i; \ > done >- @if ! test -f $(DESTDIR)/etc/mke2fs.conf; then \ >- echo " INSTALL_DATA /etc/mke2fs.conf"; \ >+ @if ! test -f $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; then \ >+ echo " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \ > $(INSTALL_DATA) $(srcdir)/mke2fs.conf \ >- $(DESTDIR)/etc/mke2fs.conf; \ >+ $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \ > fi > > install-strip: install >Index: e2fsprogs-1.39/misc/blkid.8.in >=================================================================== >--- e2fsprogs-1.39.orig/misc/blkid.8.in 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/misc/blkid.8.in 2006-09-18 17:42:57.000000000 +0200 >@@ -64,30 +64,16 @@ scanned but not necessarily available at > Display a usage message and exit. > .TP > .B \-l >-Look up the device that matches the search parameter specified using >+Look up one device that matches the search parameter specified using > the > .B \-t >-option, assuming that there is only one matching the search parameter. >-For a system with a large number of disks, this will be more >-efficient by avoiding the need to revalidate devices unless absolutely >-necessary. If this option is not specified, >+option. If there are multiple devices that match the specified search >+parameter, then the device with the highest priority is returned, and/or >+the first device found at a given priority. Device types in order of >+decreasing priority are Device Mapper, EVMS, LVM, MD, and finally regular >+block devices. If this option is not specified, > .B blkid >-will use a less efficient approach, which allows >-.B blkid >-to print all of the devices that match the search parameter. >-.IP >-This option is best used for tag searches such as >-.I LABEL=data_vol >-or >-.IR UUID=e280469a-d06f-4c0b-b068-44f3b576029e . >-If you want >-.B blkid >-to print all of the ext3 filesystems using a search parameter >-such as >-.IR TYPE=ext3 , >-then this option should >-.I not >-be used. >+will print all of the devices that match the search parameter. > .TP > .B \-o > Display >Index: e2fsprogs-1.39/misc/blkid.c >=================================================================== >--- e2fsprogs-1.39.orig/misc/blkid.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/misc/blkid.c 2006-09-18 17:42:57.000000000 +0200 >@@ -15,6 +15,7 @@ > #ifdef HAVE_GETOPT_H > #include <getopt.h> > #else >+extern int getopt(int argc, char * const argv[], const char *optstring); > extern char *optarg; > extern int optind; > #endif >Index: e2fsprogs-1.39/misc/chattr.1.in >=================================================================== >--- e2fsprogs-1.39.orig/misc/chattr.1.in 2005-12-31 07:00:53.000000000 +0100 >+++ e2fsprogs-1.39/misc/chattr.1.in 2006-09-18 17:42:57.000000000 +0200 >@@ -73,7 +73,7 @@ although it can be displayed by > .BR lsattr (1). > .PP > The 'I' attribute is used by the htree code to indicate that a directory >-is behind indexed using hashed trees. It may not be set or reset using >+is being indexed using hashed trees. It may not be set or reset using > .BR chattr (1), > although it can be displayed by > .BR lsattr (1). >Index: e2fsprogs-1.39/misc/dumpe2fs.c >=================================================================== >--- e2fsprogs-1.39.orig/misc/dumpe2fs.c 2006-05-08 17:38:05.000000000 +0200 >+++ e2fsprogs-1.39/misc/dumpe2fs.c 2006-09-19 17:05:57.000000000 +0200 >@@ -130,7 +130,7 @@ static void list_desc (ext2_filsys fs) > { > unsigned long i; > long diff; >- blk_t group_blk, next_blk; >+ blk_t first_block, last_block; > blk_t super_blk, old_desc_blk, new_desc_blk; > char *block_bitmap=NULL, *inode_bitmap=NULL; > int inode_blocks_per_group, old_desc_blocks, reserved_gdt; >@@ -147,19 +147,20 @@ static void list_desc (ext2_filsys fs) > EXT2_BLOCK_SIZE(fs->super); > reserved_gdt = fs->super->s_reserved_gdt_blocks; > fputc('\n', stdout); >- group_blk = fs->super->s_first_data_block; >+ first_block = fs->super->s_first_data_block; > if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) > old_desc_blocks = fs->super->s_first_meta_bg; > else > old_desc_blocks = fs->desc_blocks; > for (i = 0; i < fs->group_desc_count; i++) { >+ first_block = ext2fs_group_first_block(fs, i); >+ last_block = ext2fs_group_last_block(fs, i); >+ > ext2fs_super_and_bgd_loc(fs, i, &super_blk, > &old_desc_blk, &new_desc_blk, 0); >- next_blk = group_blk + fs->super->s_blocks_per_group; >- if (next_blk > fs->super->s_blocks_count) >- next_blk = fs->super->s_blocks_count; >+ > printf (_("Group %lu: (Blocks "), i); >- print_range(group_blk, next_blk - 1); >+ print_range(first_block, last_block); > fputs(")", stdout); > print_bg_opts(fs, i); > has_super = ((i==0) || super_blk); >@@ -188,19 +189,19 @@ static void list_desc (ext2_filsys fs) > fputc('\n', stdout); > fputs(_(" Block bitmap at "), stdout); > print_number(fs->group_desc[i].bg_block_bitmap); >- diff = fs->group_desc[i].bg_block_bitmap - group_blk; >+ diff = fs->group_desc[i].bg_block_bitmap - first_block; > if (diff >= 0) > printf(" (+%ld)", diff); > fputs(_(", Inode bitmap at "), stdout); > print_number(fs->group_desc[i].bg_inode_bitmap); >- diff = fs->group_desc[i].bg_inode_bitmap - group_blk; >+ diff = fs->group_desc[i].bg_inode_bitmap - first_block; > if (diff >= 0) > printf(" (+%ld)", diff); > fputs(_("\n Inode table at "), stdout); > print_range(fs->group_desc[i].bg_inode_table, > fs->group_desc[i].bg_inode_table + > inode_blocks_per_group - 1); >- diff = fs->group_desc[i].bg_inode_table - group_blk; >+ diff = fs->group_desc[i].bg_inode_table - first_block; > if (diff > 0) > printf(" (+%ld)", diff); > printf (_("\n %d free blocks, %d free inodes, " >@@ -223,7 +224,6 @@ static void list_desc (ext2_filsys fs) > fputc('\n', stdout); > inode_bitmap += fs->super->s_inodes_per_group / 8; > } >- group_blk = next_blk; > } > } > >@@ -247,10 +247,10 @@ static void list_bad_blocks(ext2_filsys > return; > } > if (dump) { >- header = fmt = "%d\n"; >+ header = fmt = "%u\n"; > } else { >- header = _("Bad blocks: %d"); >- fmt = ", %d"; >+ header = _("Bad blocks: %u"); >+ fmt = ", %u"; > } > while (ext2fs_badblocks_list_iterate(bb_iter, &blk)) { > printf(header ? header : fmt, blk); >@@ -310,10 +310,10 @@ static void print_journal_information(ex > "Journal first block: %u\n" > "Journal sequence: 0x%08x\n" > "Journal start: %u\n" >- "Journal number of users: %lu\n"), >- ntohl(jsb->s_blocksize), ntohl(jsb->s_maxlen), >- ntohl(jsb->s_first), ntohl(jsb->s_sequence), >- ntohl(jsb->s_start), ntohl(jsb->s_nr_users)); >+ "Journal number of users: %u\n"), >+ (unsigned int)ntohl(jsb->s_blocksize), (unsigned int)ntohl(jsb->s_maxlen), >+ (unsigned int)ntohl(jsb->s_first), (unsigned int)ntohl(jsb->s_sequence), >+ (unsigned int)ntohl(jsb->s_start), (unsigned int)ntohl(jsb->s_nr_users)); > > for (i=0; i < ntohl(jsb->s_nr_users); i++) { > uuid_unparse(&jsb->s_users[i*16], str); >Index: e2fsprogs-1.39/misc/e2image.c >=================================================================== >--- e2fsprogs-1.39.orig/misc/e2image.c 2006-03-19 03:34:00.000000000 +0100 >+++ e2fsprogs-1.39/misc/e2image.c 2006-09-19 17:05:57.000000000 +0200 >@@ -244,21 +244,21 @@ static int process_file_block(ext2_filsy > > static void mark_table_blocks(ext2_filsys fs) > { >- blk_t block, b; >+ blk_t first_block, b; > unsigned int i,j; > >- block = fs->super->s_first_data_block; >+ first_block = fs->super->s_first_data_block; > /* > * Mark primary superblock > */ >- ext2fs_mark_block_bitmap(meta_block_map, block); >+ ext2fs_mark_block_bitmap(meta_block_map, first_block); > > /* > * Mark the primary superblock descriptors > */ > for (j = 0; j < fs->desc_blocks; j++) { > ext2fs_mark_block_bitmap(meta_block_map, >- ext2fs_descriptor_block_loc(fs, block, j)); >+ ext2fs_descriptor_block_loc(fs, first_block, j)); > } > > for (i = 0; i < fs->group_desc_count; i++) { >@@ -287,7 +287,6 @@ static void mark_table_blocks(ext2_filsy > ext2fs_mark_block_bitmap(meta_block_map, > fs->group_desc[i].bg_inode_bitmap); > } >- block += fs->super->s_blocks_per_group; > } > } > >@@ -418,7 +417,7 @@ static void output_meta_data_blocks(ext2 > retval = io_channel_read_blk(fs->io, blk, 1, buf); > if (retval) { > com_err(program_name, retval, >- "error reading block %d", blk); >+ "error reading block %u", blk); > } > if (scramble_block_map && > ext2fs_test_block_bitmap(scramble_block_map, blk)) >@@ -517,7 +516,7 @@ static void write_raw_image_file(ext2_fi > block_buf, process_dir_block, &pb); > if (retval) { > com_err(program_name, retval, >- "while iterating over inode %d", >+ "while iterating over inode %u", > ino); > exit(1); > } >@@ -530,7 +529,7 @@ static void write_raw_image_file(ext2_fi > process_file_block, &pb); > if (retval) { > com_err(program_name, retval, >- "while iterating over %d", ino); >+ "while iterating over inode %u", ino); > exit(1); > } > } >Index: e2fsprogs-1.39/misc/filefrag.c >=================================================================== >--- e2fsprogs-1.39.orig/misc/filefrag.c 2006-05-29 02:51:47.000000000 +0200 >+++ e2fsprogs-1.39/misc/filefrag.c 2006-09-19 17:02:36.000000000 +0200 >@@ -44,9 +44,16 @@ int verbose = 0; > #define FIBMAP _IO(0x00,1) /* bmap access */ > #define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */ > >-#define EXT3_EXTENTS_FL 0x00080000 /* Inode uses extents */ >+#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */ > #define EXT3_IOC_GETFLAGS _IOR('f', 1, long) > >+static unsigned int div_ceil(unsigned int a, unsigned int b) >+{ >+ if (!a) >+ return 0; >+ return ((a - 1) / b) + 1; >+} >+ > static unsigned long get_bmap(int fd, unsigned long block) > { > int ret; >@@ -103,9 +110,9 @@ static void frag_report(const char *file > (fsinfo.f_type == 0xef53)) > is_ext2++; > if (verbose) { >- printf("Filesystem type is: %x\n", fsinfo.f_type); >+ printf("Filesystem type is: %lx\n", fsinfo.f_type); > } >- cylgroups = (fsinfo.f_blocks + fsinfo.f_bsize*8-1) / fsinfo.f_bsize*8; >+ cylgroups = div_ceil(fsinfo.f_blocks, fsinfo.f_bsize*8); > if (verbose) { > printf("Filesystem cylinder groups is approximately %ld\n", > cylgroups); >@@ -126,7 +133,7 @@ static void frag_report(const char *file > } > if (ioctl(fd, EXT3_IOC_GETFLAGS, &flags) < 0) > flags = 0; >- if (flags & EXT3_EXTENTS_FL) { >+ if (flags & EXT4_EXTENTS_FL) { > printf("File is stored in extents format\n"); > is_ext2 = 0; > } >Index: e2fsprogs-1.39/misc/findsuper.c >=================================================================== >--- e2fsprogs-1.39.orig/misc/findsuper.c 2006-03-19 03:34:00.000000000 +0100 >+++ e2fsprogs-1.39/misc/findsuper.c 2006-09-18 17:42:57.000000000 +0200 >@@ -102,6 +102,14 @@ > #define WHY(fmt, arg...) { continue; } > #endif > >+static void usage(void) >+{ >+ fprintf(stderr, >+ _("Usage: findsuper device [skipbytes [startkb]]\n")); >+ exit(1); >+} >+ >+ > int main(int argc, char *argv[]) > { > int skiprate=512; /* one sector */ >@@ -110,7 +118,8 @@ int main(int argc, char *argv[]) > char *s; > time_t tm, last = time(0); > loff_t interval = 1024 * 1024; >- >+ int c, print_jnl_copies = 0; >+ const char * device_name; > struct ext2_super_block ext2; > /* interesting fields: EXT2_SUPER_MAGIC > * s_blocks_count s_log_block_size s_mtime s_magic s_lastcheck */ >@@ -121,43 +130,66 @@ int main(int argc, char *argv[]) > bindtextdomain(NLS_CAT_NAME, LOCALEDIR); > textdomain(NLS_CAT_NAME); > #endif >- if (argc<2) { >- fprintf(stderr, >- _("Usage: findsuper device [skipbytes [startkb]]\n")); >- exit(1); >+ >+ while ((c = getopt (argc, argv, "j")) != EOF) { >+ switch (c) { >+ case 'j': >+ print_jnl_copies++; >+ break; >+ default: >+ usage(); >+ } > } >- if (argc>2) >- skiprate = strtol(argv[2], &s, 0); >- if (s == argv[2]) { >- fprintf(stderr,_("skipbytes should be a number, not %s\n"), s); >- exit(1); >+ >+ if (optind == argc) >+ usage(); >+ >+ device_name = argv[optind++]; >+ >+ if (optind < argc) { >+ skiprate = strtol(argv[optind], &s, 0); >+ if (s == argv[optind]) { >+ fprintf(stderr,_("skipbytes should be a number, not %s\n"), s); >+ exit(1); >+ } >+ optind++; > } > if (skiprate & 0x1ff) { > fprintf(stderr, > _("skipbytes must be a multiple of the sector size\n")); > exit(2); > } >- if (argc>3) >- sk = skl = strtoll(argv[3], &s, 0) << 10; >- if (s == argv[3]) { >- fprintf(stderr,_("startkb should be a number, not %s\n"), s); >- exit(1); >+ if (optind < argc) { >+ sk = skl = strtoll(argv[optind], &s, 0) << 10; >+ if (s == argv[optind]) { >+ fprintf(stderr, >+ _("startkb should be a number, not %s\n"), s); >+ exit(1); >+ } >+ optind++; > } > if (sk < 0) { >- fprintf(stderr,_("startkb should be positive, not %Ld\n"), sk); >+ fprintf(stderr, _("startkb should be positive, not %Lu\n"), sk); > exit(1); > } >- fd = open(argv[1], O_RDONLY); >+ >+ fd = open(device_name, O_RDONLY); > if (fd < 0) { >- perror(argv[1]); >+ perror(device_name); > exit(1); > } >- >+ > /* Now, go looking for the superblock! */ >- printf(_("starting at %Ld, with %d byte increments\n"), sk, skiprate); >- printf(_(" thisoff block fs_blk_sz blksz grp last_mount\n")); >+ printf(_("starting at %Lu, with %u byte increments\n"), sk, skiprate); >+ if (print_jnl_copies) >+ printf(_("[*] probably superblock written in the ext3 " >+ "journal superblock,\n\tso start/end/grp wrong\n")); >+ printf(_("byte_offset byte_start byte_end fs_blocks blksz grp last_mount_time sb_uuid label\n")); > for (; lseek64(fd, sk, SEEK_SET) != -1 && > read(fd, &ext2, 512) == 512; sk += skiprate) { >+ static unsigned char last_uuid[16] = "blah"; >+ unsigned long long bsize, grpsize; >+ int jnl_copy, sb_offset; > > if (sk && !(sk & (interval - 1))) { > time_t now, diff; >@@ -168,7 +200,7 @@ int main(int argc, char *argv[]) > if (diff > 0) { > s = ctime(&now); > s[24] = 0; >- printf("\r%14Ld: %8LdkB/s @ %s", sk, >+ printf("\r%11Lu: %8LukB/s @ %s", sk, > (((sk - skl)) / diff) >> 10, s); > fflush(stdout); > } >@@ -181,8 +213,8 @@ int main(int argc, char *argv[]) > } > if (ext2.s_magic != EXT2_SUPER_MAGIC) > continue; >- if (ext2.s_log_block_size > 4) >- WHY("log block size > 4 (%u)\n", ext2.s_log_block_size); >+ if (ext2.s_log_block_size > 6) >+ WHY("log block size > 6 (%u)\n", ext2.s_log_block_size); > if (ext2.s_r_blocks_count > ext2.s_blocks_count) > WHY("r_blocks_count > blocks_count (%u > %u)\n", > ext2.s_r_blocks_count, ext2.s_blocks_count); >@@ -194,14 +226,34 @@ int main(int argc, char *argv[]) > ext2.s_free_inodes_count, ext2.s_inodes_count); > > tm = ext2.s_mtime; >- s=ctime(&tm); >- s[24]=0; >- printf("\r%14Ld %9Ld %9d %5d %4d %s\n", >- sk, sk >> 10, ext2.s_blocks_count, >- 1 << (ext2.s_log_block_size + 10), >- ext2.s_block_group_nr, s); >+ s = ctime(&tm); >+ s[24] = 0; >+ bsize = 1 << (ext2.s_log_block_size + 10); >+ grpsize = bsize * ext2.s_blocks_per_group; >+ if (memcmp(ext2.s_uuid, last_uuid, sizeof(last_uuid)) == 0 && >+ ext2.s_rev_level > 0 && ext2.s_block_group_nr == 0) { >+ jnl_copy = 1; >+ } else { >+ jnl_copy = 0; >+ memcpy(last_uuid, ext2.s_uuid, sizeof(last_uuid)); >+ } >+ if (ext2.s_block_group_nr == 0 || bsize == 1024) >+ sb_offset = 1024; >+ else >+ sb_offset = 0; >+ if (jnl_copy && !print_jnl_copies) >+ continue; >+ printf("\r%11Lu %11Lu%s %11Lu%s %9u %5Lu %4u%s %s %02x%02x%02x%02x %s\n", >+ sk, sk - ext2.s_block_group_nr * grpsize - sb_offset, >+ jnl_copy ? "*":" ", >+ sk + ext2.s_blocks_count * bsize - >+ ext2.s_block_group_nr * grpsize - sb_offset, >+ jnl_copy ? "*" : " ", ext2.s_blocks_count, bsize, >+ ext2.s_block_group_nr, jnl_copy ? "*" : " ", s, >+ ext2.s_uuid[0], ext2.s_uuid[1], >+ ext2.s_uuid[2], ext2.s_uuid[3], ext2.s_volume_name); > } >- printf(_("\n%14Ld: finished with errno %d\n"), sk, errno); >+ printf(_("\n%11Lu: finished with errno %d\n"), sk, errno); > close(fd); > > return errno; >Index: e2fsprogs-1.39/misc/mke2fs.8.in >=================================================================== >--- e2fsprogs-1.39.orig/misc/mke2fs.8.in 2006-05-29 03:39:03.000000000 +0200 >+++ e2fsprogs-1.39/misc/mke2fs.8.in 2006-09-18 17:42:57.000000000 +0200 >@@ -30,6 +30,10 @@ mke2fs \- create an ext2/ext3 filesystem > .I bytes-per-inode > ] > [ >+.B \-I >+.I inode-size >+] >+[ > .B \-j > ] > [ >@@ -191,8 +195,13 @@ Specify the size of fragments in bytes. > .B \-F > Force > .B mke2fs >-to run, even if the specified device is not a >-block special device, or appears to be mounted. >+to create a filesystem, even if the specified device is not a partition >+on a block special device, or if other parameters do not make sense. >+In order to force >+.B mke2fs >+to create a filesystem even if the filesystem appears to be in use >+or is mounted (a truly dangerous thing to do), this option must be >+specified twice. > .TP > .BI \-g " blocks-per-group" > Specify the number of blocks in a block group. There is generally no >@@ -218,6 +227,23 @@ be smaller than the blocksize of the fil > inodes will be made. Be warned that is not possible to expand the number > of inodes on a filesystem after it is created, so be careful deciding the > correct value for this parameter. >+.TP >+.BI \-I " inode-size" >+Specify the size of each inode in bytes. >+.B mke2fs >+creates 128-byte inodes by default. In kernels after 2.6.10 and some >+earlier vendor kernels it is possible to utilize larger inodes to store >+extended attributes for improved performance. The >+.I inode-size >+value must be a power of two larger or equal to 128. The larger the >+.I inode-size >+the more space the inode table will consume, and this reduces the usable >+space in the filesystem and can also negatively impact performance. Using >+the default value is always safe, though it may be desirable to use 256-byte >+inodes if full backward compatibility is not a concern. Extended attributes >+stored in large inodes are not visible with older kernels, and such >+filesystems will not be mountable with 2.4 kernels at all. It is not >+possible to change this value after the filesystem is created. > .TP > .B \-j > Create the filesystem with an ext3 journal. If the >Index: e2fsprogs-1.39/misc/mke2fs.c >=================================================================== >--- e2fsprogs-1.39.orig/misc/mke2fs.c 2006-05-13 15:16:57.000000000 +0200 >+++ e2fsprogs-1.39/misc/mke2fs.c 2006-09-19 17:05:57.000000000 +0200 >@@ -94,11 +94,12 @@ int linux_version_code = 0; > static void usage(void) > { > fprintf(stderr, _("Usage: %s [-c|-t|-l filename] [-b block-size] " >- "[-f fragment-size]\n\t[-i bytes-per-inode] [-j] [-J journal-options]" >- " [-N number-of-inodes]\n\t[-m reserved-blocks-percentage] " >- "[-o creator-os] [-g blocks-per-group]\n\t[-L volume-label] " >- "[-M last-mounted-directory] [-O feature[,...]]\n\t" >- "[-r fs-revision] [-R options] [-qvSV] device [blocks-count]\n"), >+ "[-f fragment-size]\n\t[-i bytes-per-inode] [-I inode-size] " >+ "[-j] [-J journal-options]\n" >+ "\t[-N number-of-inodes] [-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] [-R options] [-qvSV]\n\tdevice [blocks-count]\n"), > program_name); > exit(1); > } >@@ -188,7 +189,7 @@ static void test_disk(ext2_filsys fs, ba > errcode_t retval; > char buf[1024]; > >- sprintf(buf, "badblocks -b %d -X %s%s%s %d", fs->blocksize, >+ sprintf(buf, "badblocks -b %d -X %s%s%s %u", fs->blocksize, > quiet ? "" : "-s ", (cflag > 1) ? "-w " : "", > fs->device_name, fs->super->s_blocks_count); > if (verbose) >@@ -232,7 +233,7 @@ static void handle_bad_blocks(ext2_filsy > if (ext2fs_badblocks_list_test(bb_list, i)) { > fprintf(stderr, _("Block %d in primary " > "superblock/group descriptor area bad.\n"), i); >- fprintf(stderr, _("Blocks %u through %d must be good " >+ fprintf(stderr, _("Blocks %u through %u must be good " > "in order to build a filesystem.\n"), > fs->super->s_first_data_block, must_be_good); > fputs(_("Aborting....\n"), stderr); >@@ -819,12 +820,12 @@ static void parse_extended_opts(struct e > if (!bpg) > bpg = blocksize * 8; > gdpb = blocksize / sizeof(struct ext2_group_desc); >- group_desc_count = (param->s_blocks_count + >- bpg - 1) / bpg; >+ group_desc_count = >+ ext2fs_div_ceil(param->s_blocks_count, bpg); > desc_blocks = (group_desc_count + > gdpb - 1) / gdpb; >- rsv_groups = (resize + bpg - 1) / bpg; >- rsv_gdb = (rsv_groups + gdpb - 1) / gdpb - >+ rsv_groups = ext2fs_div_ceil(resize, bpg); >+ rsv_gdb = ext2fs_div_ceil(rsv_groups, gdpb) - > desc_blocks; > if (rsv_gdb > (int) EXT2_ADDR_PER_BLOCK(param)) > rsv_gdb = EXT2_ADDR_PER_BLOCK(param); >@@ -870,7 +871,7 @@ static void syntax_err_report(const char > exit(1); > } > >-static const char *config_fn[] = { "/etc/mke2fs.conf", 0 }; >+static const char *config_fn[] = { ROOT_SYSCONFDIR "/mke2fs.conf", 0 }; > > static void edit_feature(const char *str, __u32 *compat_array) > { >@@ -895,7 +896,7 @@ static void PRS(int argc, char *argv[]) > double reserved_ratio = 5.0; > int sector_size = 0; > int show_version_only = 0; >- ext2_ino_t num_inodes = 0; >+ __u64 num_inodes = 0; /* u64 to catch too-large input */ > errcode_t retval; > char * oldpath = getenv("PATH"); > char * extended_opts = 0; >@@ -1076,7 +1077,6 @@ static void PRS(int argc, char *argv[]) > case 's': /* deprecated */ > s_opt = atoi(optarg); > break; >-#ifdef EXT2_DYNAMIC_REV > case 'I': > inode_size = strtoul(optarg, &tmp, 0); > if (*tmp) { >@@ -1085,12 +1085,11 @@ static void PRS(int argc, char *argv[]) > exit(1); > } > break; >-#endif > case 'v': > verbose = 1; > break; > case 'F': >- force = 1; >+ force++; > break; > case 'L': > volume_label = optarg; >@@ -1261,7 +1260,7 @@ static void PRS(int argc, char *argv[]) > } > > if (!fs_type) { >- int megs = fs_param.s_blocks_count * >+ int megs = (__u64)fs_param.s_blocks_count * > (EXT2_BLOCK_SIZE(&fs_param) / 1024) / 1024; > > if (megs <= 3) >@@ -1413,7 +1412,15 @@ static void PRS(int argc, char *argv[]) > "blocksizes greater than 4096\n\tusing ext3. " > "Use -b 4096 if this is an issue for you.\n\n")); > >- if (inode_size) { >+ if (inode_size == 0) { >+ profile_get_integer(profile, "defaults", "inode_size", NULL, >+ 0, &inode_size); >+ profile_get_integer(profile, "fs_types", fs_type, >+ "inode_size", inode_size, >+ &inode_size); >+ } >+ >+ if (inode_size && fs_param.s_rev_level >= EXT2_DYNAMIC_REV) { > if (inode_size < EXT2_GOOD_OLD_INODE_SIZE || > inode_size > EXT2_BLOCK_SIZE(&fs_param) || > inode_size & (inode_size - 1)) { >@@ -1425,11 +1432,26 @@ static void PRS(int argc, char *argv[]) > } > if (inode_size != EXT2_GOOD_OLD_INODE_SIZE) > fprintf(stderr, _("Warning: %d-byte inodes not usable " >- "on most systems\n"), >+ "on older systems\n"), > inode_size); > fs_param.s_inode_size = inode_size; > } > >+ /* Make sure number of inodes specified will fit in 32 bits */ >+ if (num_inodes == 0) { >+ __u64 n; >+ n = (__u64) fs_param.s_blocks_count * blocksize / inode_ratio; >+ if (n > ~0U) { >+ com_err(program_name, 0, >+ _("too many inodes (%llu), raise inode ratio?"), n); >+ exit(1); >+ } >+ } else if (num_inodes > ~0U) { >+ com_err(program_name, 0, >+ _("too many inodes (%llu), specify < 2^32 inodes"), >+ (__u64)num_inodes); >+ exit(1); >+ } > /* > * Calculate number of inodes based on the inode ratio > */ >@@ -1440,8 +1462,8 @@ static void PRS(int argc, char *argv[]) > /* > * Calculate number of blocks to reserve > */ >- fs_param.s_r_blocks_count = (fs_param.s_blocks_count * reserved_ratio) >- / 100; >+ fs_param.s_r_blocks_count = e2p_percent(reserved_ratio, >+ fs_param.s_blocks_count); > } > > int main (int argc, char *argv[]) >Index: e2fsprogs-1.39/misc/mke2fs.conf.5.in >=================================================================== >--- e2fsprogs-1.39.orig/misc/mke2fs.conf.5.in 2006-05-22 23:50:10.000000000 +0200 >+++ e2fsprogs-1.39/misc/mke2fs.conf.5.in 2006-09-18 17:42:57.000000000 +0200 >@@ -131,6 +131,12 @@ This relation specifies the default inod > specify one on the command line, and the filesystem-type > specific section of the configuration file does not specify a default > inode ratio. >+.TP >+.I inode_size >+This relation specifies the default inode size if the user does not >+specify one on the command line, and the filesystem-type >+specific section of the configuration file does not specify a default >+inode size. > .SH THE [fs_types] STANZA > Each tag in the > .I [fs_types] >@@ -181,6 +187,10 @@ specify a blocksize on the command line. > .I inode_ratio > This relation specifies the default inode ratio if the user does not > specify one on the command line. >+.TP >+.I inode_size >+This relation specifies the default inode size if the user does not >+specify one on the command line. > .SH FILES > .TP > .I /etc/mke2fs.conf >Index: e2fsprogs-1.39/misc/tune2fs.8.in >=================================================================== >--- e2fsprogs-1.39.orig/misc/tune2fs.8.in 2006-05-15 00:07:44.000000000 +0200 >+++ e2fsprogs-1.39/misc/tune2fs.8.in 2006-09-18 17:42:57.000000000 +0200 >@@ -182,8 +182,8 @@ It is strongly recommended that either > (time-dependent) checking be enabled to force periodic full > .BR e2fsck (8) > checking of the filesystem. Failure to do so may lead to filesystem >-corruption due to bad disks, cables, memory, or kernel bugs to go >-unnoticed until they cause data loss or corruption. >+corruption (due to bad disks, cables, memory, or kernel bugs) going >+unnoticed, ultimately resulting in data loss or corruption. > .TP > .B \-j > Add an ext3 journal to the filesystem. If the >@@ -329,7 +329,7 @@ of the directory in which they were crea > is the default, where newly created files take on the fsgid of the current > process, unless the directory has the setgid bit set, in which case it takes > the gid from the parent directory, and also gets the setgid bit set if it is >-directory itself. >+a directory itself. > .TP > .B user_xattr > Enable user-specified extended attributes. >@@ -436,7 +436,7 @@ be used to set the last checked time on > of > .I time-last-checked > is the international date format, with an optional time specifier, i.e. >-YYYYMMDD[[HHMM]SS]. The keyword >+YYYYMMDD[HH[MM[SS]]]. The keyword > .B now > is also accepted, in which case the last checked time will be set to the > current time. >Index: e2fsprogs-1.39/misc/tune2fs.c >=================================================================== >--- e2fsprogs-1.39.orig/misc/tune2fs.c 2006-05-14 23:21:25.000000000 +0200 >+++ e2fsprogs-1.39/misc/tune2fs.c 2006-09-19 17:05:57.000000000 +0200 >@@ -823,7 +823,8 @@ int main (int argc, char ** argv) > printf (_("Setting interval between checks to %lu seconds\n"), interval); > } > if (m_flag) { >- sb->s_r_blocks_count = sb->s_blocks_count * reserved_ratio /100; >+ sb->s_r_blocks_count = e2p_percent(reserved_ratio, >+ sb->s_blocks_count); > ext2fs_mark_super_dirty(fs); > printf (_("Setting reserved blocks percentage to %g%% (%u blocks)\n"), > reserved_ratio, sb->s_r_blocks_count); >Index: e2fsprogs-1.39/misc/util.c >=================================================================== >--- e2fsprogs-1.39.orig/misc/util.c 2006-03-23 13:38:10.000000000 +0100 >+++ e2fsprogs-1.39/misc/util.c 2006-09-19 17:02:36.000000000 +0200 >@@ -154,7 +154,7 @@ void check_mount(const char *device, int > } > if (mount_flags & EXT2_MF_MOUNTED) { > fprintf(stderr, _("%s is mounted; "), device); >- if (force) { >+ if (force > 2) { > fputs(_("mke2fs forced anyway. Hope /etc/mtab is " > "incorrect.\n"), stderr); > return; >@@ -166,7 +166,7 @@ void check_mount(const char *device, int > if (mount_flags & EXT2_MF_BUSY) { > fprintf(stderr, _("%s is apparently in use by the system; "), > device); >- if (force) { >+ if (force > 2) { > fputs(_("mke2fs forced anyway.\n"), stderr); > return; > } >Index: e2fsprogs-1.39/misc/uuidgen.1.in >=================================================================== >--- e2fsprogs-1.39.orig/misc/uuidgen.1.in 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/misc/uuidgen.1.in 2006-09-18 17:42:57.000000000 +0200 >@@ -34,6 +34,10 @@ will generate a random-based UUID if a h > generator is present. Otherwise, it will chose a time-based UUID. It > is possible to force the generation of one of these two > UUID types by using the >+.PP >+A UUID of the form 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb (in >+.BR printf (3) >+format "%08x-%04x-%04x-%04x-%012x") is output to the standard output. > .B \-r > or > .B \-t >@@ -49,10 +53,6 @@ quality random number generator, such as > .B \-t > Generate a time-based UUID. This method creates a UUID based on the system > clock plus the system's ethernet hardware address, if present. >-.SH RETURN VALUE >-The UUID of the form 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb (in >-.BR printf (3) >-format "%08x-%04x-%04x-%04x-%012x") is output to the standard output. > .SH "CONFORMING TO" > OSF DCE 1.1 > .SH AUTHOR >Index: e2fsprogs-1.39/misc/uuidgen.c >=================================================================== >--- e2fsprogs-1.39.orig/misc/uuidgen.c 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/misc/uuidgen.c 2006-09-18 17:42:57.000000000 +0200 >@@ -16,6 +16,7 @@ > #ifdef HAVE_GETOPT_H > #include <getopt.h> > #else >+extern int getopt(int argc, char * const argv[], const char *optstring); > extern char *optarg; > extern int optind; > #endif >Index: e2fsprogs-1.39/po/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/po/ChangeLog 2006-04-10 00:32:44.000000000 +0200 >+++ e2fsprogs-1.39/po/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,11 @@ >+2006-09-13 Theodore Tso <tytso@mit.edu> >+ >+ * Update French and Dutch translations >+ >+2006-08-19 Theodore Tso <tytso@mit.edu> >+ >+ * LI?NGUAS, vi.po, vi.gmo: Add Vietnamese translation >+ > 2006-04-09 Theodore Ts'o <tytso@mit.edu> > > * Update French, Dutch, Polish, Swedish, and Turkish translations. >Index: e2fsprogs-1.39/po/LINGUAS >=================================================================== >--- e2fsprogs-1.39.orig/po/LINGUAS 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/po/LINGUAS 2006-09-18 17:42:57.000000000 +0200 >@@ -1 +1,2 @@ >-cs de es fr it nl pl rw sv tr >+cs de es fr it nl pl rw sv tr vi >+ >Index: e2fsprogs-1.39/po/fr.po >=================================================================== >--- e2fsprogs-1.39.orig/po/fr.po 2006-04-10 00:30:58.000000000 +0200 >+++ e2fsprogs-1.39/po/fr.po 2006-09-18 17:42:57.000000000 +0200 >@@ -62,7 +62,7 @@ > #. > msgid "" > msgstr "" >-"Project-Id-Version: GNU e2fsprogs 1.38-b3\n" >+"Project-Id-Version: GNU e2fsprogs 1.39-b2\n" > "Report-Msgid-Bugs-To: tytso@alum.mit.edu\n" > "POT-Creation-Date: 2006-03-29 15:30-0500\n" > "PO-Revision-Date: 2006-04-07 01:45+0200\n" >@@ -102,8 +102,7 @@ msgstr "lors de la tentative d'ouverture > > #: e2fsck/badblocks.c:93 misc/mke2fs.c:177 > msgid "while reading in list of bad blocks from file" >-msgstr "" >-"lors de la lecture de la liste des blocs défectueux à partir du fichier" >+msgstr "lors de la lecture de la liste des blocs défectueux à partir du fichier" > > #: e2fsck/badblocks.c:103 > msgid "while updating bad block inode" >@@ -180,8 +179,7 @@ msgstr "Usage : %s disque\n" > #: e2fsck/flushb.c:63 > #, c-format > msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n" >-msgstr "" >-"L'ioctl BLKFLSBUF n'est pas supporté ! Impossible de vider les tampons.\n" >+msgstr "L'ioctl BLKFLSBUF n'est pas supporté ! Impossible de vider les tampons.\n" > > #: e2fsck/iscan.c:46 > #, c-format >@@ -506,7 +504,7 @@ msgstr "(pas d'invite)" > > #: e2fsck/problem.c:51 > msgid "Fix" >-msgstr "Réparer" >+msgstr "Corriger" > > #: e2fsck/problem.c:52 > msgid "Clear" >@@ -586,7 +584,7 @@ msgstr "(AUCUN)" > > #: e2fsck/problem.c:79 > msgid "FIXED" >-msgstr "RÉPARÉ" >+msgstr "CORRIGÉ" > > #: e2fsck/problem.c:80 > msgid "CLEARED" >@@ -825,8 +823,7 @@ msgstr "Le @j externe ne supporte pas ce > #: e2fsck/problem.c:212 > msgid "" > "Ext3 @j @S is unknown type %N (unsupported).\n" >-"It is likely that your copy of e2fsck is old and/or doesn't support this @j " >-"format.\n" >+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n" > "It is also possible the @j @S is corrupt.\n" > msgstr "" > "Le @S du @j Ext3 est de type inconnu %N (non supporté).\n" >@@ -843,20 +840,17 @@ msgstr "Le @S du @j Ext3 est corrompu.\n > #: e2fsck/problem.c:225 > #, c-format > msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n" >-msgstr "" >-"Le @S ne semble pas avoir le drapeau has_journal, mais a un %s de @j ext3.\n" >+msgstr "Le @S ne semble pas avoir le drapeau has_journal, mais a un %s de @j ext3.\n" > > #. @-expanded: superblock has ext3 needs_recovery flag set, but no journal.\n > #: e2fsck/problem.c:230 > msgid "@S has ext3 needs_recovery flag set, but no @j.\n" >-msgstr "" >-"Le @S a le drapeau ext3 needs_recovery activé, mais n'a pas de de @j.\n" >+msgstr "Le @S a le drapeau ext3 needs_recovery activé, mais n'a pas de de @j.\n" > > #. @-expanded: ext3 recovery flag is clear, but journal has data.\n > #: e2fsck/problem.c:235 > msgid "ext3 recovery flag is clear, but @j has data.\n" >-msgstr "" >-"le drapeau ext3 recovery n'est pas activé, mais le @j contient des données.\n" >+msgstr "le drapeau ext3 recovery n'est pas activé, mais le @j contient des données.\n" > > #. @-expanded: Clear journal > #: e2fsck/problem.c:240 >@@ -871,9 +865,7 @@ msgstr "Exécuter quand même le @j" > #. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n > #: e2fsck/problem.c:250 > msgid "Recovery flag not set in backup @S, so running @j anyway.\n" >-msgstr "" >-"Le drapeau recovery n'est pas activé dans le @S de secours, le @j sera donc " >-"quand même exécuté.\n" >+msgstr "Le drapeau recovery n'est pas activé dans le @S de secours, le @j sera donc quand même exécuté.\n" > > #. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n > #: e2fsck/problem.c:255 >@@ -905,22 +897,17 @@ msgstr "@i %i @I dans la liste des @is @ > #. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem. > #: e2fsck/problem.c:280 e2fsck/problem.c:608 > msgid "@f has feature flag(s) set, but is a revision 0 @f. " >-msgstr "" >-"le @f a des drapeaux de fonctionnalités activés mais est un @f de version 0. " >+msgstr "le @f a des drapeaux de fonctionnalités activés mais est un @f de version 0. " > > #. @-expanded: Ext3 journal superblock has an unknown read-only feature flag set.\n > #: e2fsck/problem.c:285 > msgid "Ext3 @j @S has an unknown read-only feature flag set.\n" >-msgstr "" >-"Le @S du @j Ext3 a un drapeau de fonctionnalités inconnu sélectionné en " >-"lecture seule.\n" >+msgstr "Le @S du @j Ext3 a un drapeau de fonctionnalités inconnu sélectionné en lecture seule.\n" > > #. @-expanded: Ext3 journal superblock has an unknown incompatible feature flag set.\n > #: e2fsck/problem.c:290 > msgid "Ext3 @j @S has an unknown incompatible feature flag set.\n" >-msgstr "" >-"Le @S du @j Ext3 contient un drapeau non reconnu de fonctionnalités " >-"incompatibles.\n" >+msgstr "Le @S du @j Ext3 contient un drapeau non reconnu de fonctionnalités incompatibles.\n" > > #. @-expanded: journal version not supported by this e2fsck.\n > #: e2fsck/problem.c:295 >@@ -985,9 +972,7 @@ msgstr "" > #. @-expanded: Resize_inode not enabled, but the resize inode is non-zero. > #: e2fsck/problem.c:327 > msgid "Resize_@i not enabled, but the resize @i is non-zero. " >-msgstr "" >-"Resize_inode n'est pas activé, mais l'@i de changement de taille n'est pas " >-"nul. " >+msgstr "Resize_inode n'est pas activé, mais l'@i de changement de taille n'est pas nul. " > > #. @-expanded: Resize inode not valid. > #: e2fsck/problem.c:332 >@@ -1023,7 +1008,7 @@ msgstr "l'@r n'est pas un @d. " > #. @-expanded: root inode has dtime set (probably due to old mke2fs). > #: e2fsck/problem.c:362 > msgid "@r has dtime set (probably due to old mke2fs). " >-msgstr "@r a un dtime initialisé (probablement en raison d'un vieux mke2fs). " >+msgstr "l'@r a un dtime (probablement en raison d'un vieux mke2fs). " > > #. @-expanded: Reserved inode %i (%Q) has invalid mode. > #: e2fsck/problem.c:367 >@@ -1040,7 +1025,7 @@ msgstr "l'@i @D %i a un dtime à zéro. " > #: e2fsck/problem.c:377 > #, c-format > msgid "@i %i is in use, but has dtime set. " >-msgstr "l'@i %i est utilisé, mais a un dtime initialisé. " >+msgstr "l'@i %i est utilisé, mais a un dtime. " > > #. @-expanded: inode %i is a zero-length directory. > #: e2fsck/problem.c:382 >@@ -1123,8 +1108,7 @@ msgstr "@b dupliqué ou défectueux actuel > #. @-expanded: Bad block %b used as bad block inode indirect block. > #: e2fsck/problem.c:457 > msgid "Bad @b %b used as bad @b @i indirect @b. " >-msgstr "" >-"%b défectueux utilisé en tant que @b indirect d'@i des @bs défectueux. " >+msgstr "%b défectueux utilisé en tant que @b indirect d'@i des @bs défectueux. " > > #. @-expanded: \n > #. @-expanded: The bad block inode has probably been corrupted. You probably\n >@@ -1173,9 +1157,7 @@ msgstr "Le @S primaire (%b) est sur la l > #. @-expanded: Block %b in the primary group descriptors is on the bad block list\n > #: e2fsck/problem.c:485 > msgid "Block %b in the primary @g descriptors is on the bad @b list\n" >-msgstr "" >-"Le bloc %b dans les descripteurs de @gs primaires est dans la liste des @bs " >-"défectueux\n" >+msgstr "Le bloc %b dans les descripteurs de @gs primaires est dans la liste des @bs défectueux\n" > > #. @-expanded: Warning: Group %g's superblock (%b) is bad.\n > #: e2fsck/problem.c:491 >@@ -1185,16 +1167,12 @@ msgstr "Avertissement : le @S (%b) du @g > #. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n > #: e2fsck/problem.c:496 > msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n" >-msgstr "" >-"Avertissement : la copie des descripteurs de @gs du @g %g a un @b (%b) " >-"défectueux.\n" >+msgstr "Avertissement : la copie des descripteurs de @gs du @g %g a un @b (%b) défectueux.\n" > > #. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n > #: e2fsck/problem.c:502 > msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n" >-msgstr "" >-"Erreur de programmation ? @b n°%b reclamé sans aucune raison dans " >-"process_bad_block.\n" >+msgstr "Erreur de programmation ? @b n°%b reclamé sans aucune raison dans process_bad_block.\n" > > #. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n > #: e2fsck/problem.c:508 >@@ -1265,16 +1243,12 @@ msgstr "Erreur lors de la boucle d'itéra > #. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n > #: e2fsck/problem.c:568 > msgid "Error storing @i count information (@i=%i, count=%N): %m\n" >-msgstr "" >-"Erreur lors du stockage du compteur d'information d'@i (@i=%i, " >-"compteur=%N) : %m\n" >+msgstr "Erreur lors du stockage du compteur d'information d'@i (@i=%i, compteur=%N) : %m\n" > > #. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n > #: e2fsck/problem.c:573 > msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n" >-msgstr "" >-"Erreur lors du stockage de l'information du @b de @ds (@i=%i, @b=%b, " >-"num=%N) : %m\n" >+msgstr "Erreur lors du stockage de l'information du @b de @ds (@i=%i, @b=%b, num=%N) : %m\n" > > #. @-expanded: Error reading inode %i: %m\n > #: e2fsck/problem.c:579 >@@ -1303,9 +1277,7 @@ msgstr "" > #: e2fsck/problem.c:598 > #, c-format > msgid "@i %i has @cion flag set on @f without @cion support. " >-msgstr "" >-"l'@i %i a le drapeau de @cion qui est initialisé sur un @f sans support de " >-"@cion. " >+msgstr "l'@i %i a le drapeau de @cion qui est initialisé sur un @f sans support de @cion. " > > #. @-expanded: Special (device/socket/fifo) inode %i has non-zero size. > #: e2fsck/problem.c:603 >@@ -1332,9 +1304,7 @@ msgstr "l'@i %i fait partie de la liste > #. @-expanded: inodes that were part of a corrupted orphan linked list found. > #: e2fsck/problem.c:629 > msgid "@is that were part of a corrupted orphan linked list found. " >-msgstr "" >-"des @is qui faisaient partie d'un liste chaînée d'orphelins corrompue ont " >-"été repérés. " >+msgstr "des @is qui faisaient partie d'une liste chaînée d'orphelins corrompue ont été repérés. " > > #. @-expanded: error allocating refcount structure (%N): %m\n > #: e2fsck/problem.c:634 >@@ -1416,8 +1386,7 @@ msgstr "le @b n°%B (%b) rend le lien sym > #: e2fsck/problem.c:708 > #, c-format > msgid "@i %i has INDEX_FL flag set on @f without htree support.\n" >-msgstr "" >-"l'@i %i a le drapeau INDEX_FL activé sur le @f sans support des htrees.\n" >+msgstr "l'@i %i a le drapeau INDEX_FL activé sur le @f sans support des htrees.\n" > > #. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n > #: e2fsck/problem.c:713 >@@ -1453,9 +1422,7 @@ msgstr "l'@h %i a une hauteur d'arbre (% > msgid "" > "Bad @b @i has an indirect @b (%b) that conflicts with\n" > "@f metadata. " >-msgstr "" >-"l'@i des @bs défectueux a un @b indirect (%b) qui entre en conflit avec les " >-"métadonnées du @f. " >+msgstr "l'@i des @bs défectueux a un @b indirect (%b) qui entre en conflit avec les métadonnées du @f. " > > #. @-expanded: Resize inode (re)creation failed: %m. > #: e2fsck/problem.c:744 >@@ -1503,8 +1470,7 @@ msgid "" > "Pass 1B: Rescanning for @m @bs\n" > msgstr "" > "\n" >-"Exécution de passes additionnelles pour résoudre les problèmes de @bs " >-"réclamés par plus d'un @i...\n" >+"Exécution de passes additionnelles pour résoudre les problèmes de @bs réclamés par plus d'un @i...\n" > "Passe 1B : ré-examen pour les @bs @m\n" > > #. @-expanded: multiply-claimed block(s) in inode %i: >@@ -1797,7 +1763,7 @@ msgstr "l'@i %i (%Q) est une socket @I.\ > #. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n > #: e2fsck/problem.c:1069 > msgid "Setting filetype for @E to %N.\n" >-msgstr "Définition du type de fichiers pour l'@E à %N.\n" >+msgstr "Définition du type de fichier pour l'@E à %N.\n" > > #. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n > #: e2fsck/problem.c:1074 >@@ -1827,9 +1793,7 @@ msgstr "le @b d'@a @F @n (%If).\n" > #. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n > #: e2fsck/problem.c:1099 > msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n" >-msgstr "" >-"le @f contient de grands fichiers, mais n'a pas le drapeau LARGE_FILE activé " >-"dans le @S.\n" >+msgstr "le @f contient de grands fichiers, mais n'a pas le drapeau LARGE_FILE activé dans le @S.\n" > > #. @-expanded: problem in HTREE directory inode %d: node (%B) not referenced\n > #: e2fsck/problem.c:1104 >@@ -1985,17 +1949,13 @@ msgstr "ext2fs_new_@i : %m lors de la te > #: e2fsck/problem.c:1240 > #, c-format > msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n" >-msgstr "" >-"ext2fs_new_dir_@b : %m lors de la tentative de création d'un nouveau @b de " >-"@d\n" >+msgstr "ext2fs_new_dir_@b : %m lors de la tentative de création d'un nouveau @b de @d\n" > > #. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n > #: e2fsck/problem.c:1245 > #, c-format > msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n" >-msgstr "" >-"ext2fs_write_dir_@b : %m lors de la tentative d'écriture du @b de @d pour /" >-"@l\n" >+msgstr "ext2fs_write_dir_@b : %m lors de la tentative d'écriture du @b de @d pour /@l\n" > > #. @-expanded: Error while adjusting inode count on inode %i\n > #: e2fsck/problem.c:1250 >@@ -2133,14 +2093,12 @@ msgstr "différences de @B d'@is : " > #. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n > #: e2fsck/problem.c:1418 > msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n" >-msgstr "" >-"Le décompte des @is libres est erroné pour le @g n°%g (%i, décompté=%j).\n" >+msgstr "Le décompte des @is libres est erroné pour le @g n°%g (%i, décompté=%j).\n" > > #. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n > #: e2fsck/problem.c:1423 > msgid "Directories count wrong for @g #%g (%i, counted=%j).\n" >-msgstr "" >-"Le décompte des répertoires est erroné pour le @g n°%g (%i, décompté=%j).\n" >+msgstr "Le décompte des répertoires est erroné pour le @g n°%g (%i, décompté=%j).\n" > > #. @-expanded: Free inodes count wrong (%i, counted=%j).\n > #: e2fsck/problem.c:1428 >@@ -2150,8 +2108,7 @@ msgstr "Le décompte des @is libres est e > #. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n > #: e2fsck/problem.c:1433 > msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n" >-msgstr "" >-"Le décompte des @bs libres est erroné pour le @g n°%g (%b, décompté=%c).\n" >+msgstr "Le décompte des @bs libres est erroné pour le @g n°%g (%b, décompté=%c).\n" > > #. @-expanded: Free blocks count wrong (%b, counted=%c).\n > #: e2fsck/problem.c:1438 >@@ -2161,13 +2118,8 @@ msgstr "Le décompte des @bs libres est e > #. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap > #. @-expanded: endpoints (%i, %j)\n > #: e2fsck/problem.c:1443 >-msgid "" >-"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B " >-"endpoints (%i, %j)\n" >-msgstr "" >-"ERREUR DE PROGRAMMATION : les points de terminaisons (%b, %c) de @Bs " >-"du @f (n°%N) ne concordent pas avec les points de terminaison de @Bs " >-"calculés (%i, %j)\n" >+msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n" >+msgstr "ERREUR DE PROGRAMMATION : les points de terminaisons (%b, %c) de @Bs du @f (n°%N) ne concordent pas avec les points de terminaison de @Bs calculés (%i, %j)\n" > > #: e2fsck/problem.c:1449 > msgid "Internal error: fudging end of bitmap (%N)\n" >@@ -2255,8 +2207,7 @@ msgstr "lors de l'écriture de la table d > #: e2fsck/swapfs.c:223 > #, c-format > msgid "Pass 0: Doing byte-swap of filesystem\n" >-msgstr "" >-"Passe 0 : traitement de l'échange octet par octet du système de fichiers\n" >+msgstr "Passe 0 : traitement de l'échange octet par octet du système de fichiers\n" > > #: e2fsck/swapfs.c:230 > #, c-format >@@ -2293,8 +2244,7 @@ msgid "" > " -p Automatic repair (no questions)\n" > " -n Make no changes to the filesystem\n" > " -y Assume \"yes\" to all questions\n" >-" -c Check for bad blocks and add them to the badblock " >-"list\n" >+" -c Check for bad blocks and add them to the badblock list\n" > " -f Force checking even if filesystem is marked clean\n" > msgstr "" > "\n" >@@ -2335,7 +2285,7 @@ msgstr "%s : %d/%d fichiers (%0d.%d%% no > #: e2fsck/unix.c:133 > #, c-format > msgid " # of inodes with ind/dind/tind blocks: %d/%d/%d\n" >-msgstr " n° d'i-noeuds avec des blocs ind/dind/tind : %d/%d/%d\n" >+msgstr " nombre d'i-noeuds avec des blocs ind/dind/tind : %d/%d/%d\n" > > #: e2fsck/unix.c:177 misc/badblocks.c:779 misc/tune2fs.c:792 misc/util.c:151 > #: resize/main.c:184 >@@ -2483,9 +2433,7 @@ msgstr "Impossible de résoudre « %s »" > #: e2fsck/unix.c:782 > #, c-format > msgid "Incompatible options not allowed when byte-swapping.\n" >-msgstr "" >-"Les options incompatibles ne sont pas autorisées lors de l'échanges " >-"d'octets.\n" >+msgstr "Les options incompatibles ne sont pas autorisées lors de l'échanges d'octets.\n" > > #: e2fsck/unix.c:789 > #, c-format >@@ -2577,9 +2525,7 @@ msgstr "lors de la vérification du journ > > #: e2fsck/unix.c:1021 > #, c-format >-msgid "" >-"Warning: skipping journal recovery because doing a read-only filesystem " >-"check.\n" >+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n" > msgstr "" > "Avertissement : saute la récupération du journal puisque l'on\n" > "procède à l'examen d'un système de fichiers en lecture seule.\n" >@@ -2805,8 +2751,7 @@ msgstr "complété > #, c-format > msgid "" > "Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n" >-" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern " >-"[...]]]\n" >+" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n" > " device [last_block [start_block]]\n" > msgstr "" > "Usage : %s [-b taille_de_bloc] [-i fichier_d_entrée]\n" >@@ -2877,8 +2822,7 @@ msgstr "" > > #: misc/badblocks.c:597 > msgid "Checking for bad blocks (non-destructive read-write test)\n" >-msgstr "" >-"Vérification des blocs défectueux (test non destructif de lecture-écriture)\n" >+msgstr "Vérification des blocs défectueux (test non destructif de lecture-écriture)\n" > > #: misc/badblocks.c:604 > msgid "" >@@ -3035,8 +2979,7 @@ msgstr "Vous devez utiliser « -v », = - > #: misc/dumpe2fs.c:53 > #, c-format > msgid "Usage: %s [-bfhixV] [-ob superblock] [-oB blocksize] device\n" >-msgstr "" >-"Usage : %s [-bfhixV] [-ob super_bloc] [-oB taille_de_bloc] périphérique\n" >+msgstr "Usage : %s [-bfhixV] [-ob super_bloc] [-oB taille_de_bloc] périphérique\n" > > #: misc/dumpe2fs.c:131 > #, c-format >@@ -3193,8 +3136,7 @@ msgstr "Ne peut allouer un tampon d'en-t > #: misc/e2image.c:81 > #, c-format > msgid "short write (only %d bytes) for writing image header" >-msgstr "" >-"écriture écourtée (seulement %d octets) pour l'écriture de l'en-tête image" >+msgstr "écriture écourtée (seulement %d octets) pour l'écriture de l'en-tête image" > > #: misc/e2image.c:100 > msgid "while writing superblock" >@@ -3288,9 +3230,7 @@ msgstr "%s : wait : plus de processus fi > #: misc/fsck.c:607 > #, c-format > msgid "Warning... %s for device %s exited with signal %d.\n" >-msgstr "" >-"Avertissement... %s pour le périphérique %s s'est terminé avec le signal %" >-"d.\n" >+msgstr "Avertissement... %s pour le périphérique %s s'est terminé avec le signal %d.\n" > > #: misc/fsck.c:613 > #, c-format >@@ -3317,8 +3257,7 @@ msgstr "" > > #: misc/fsck.c:749 > msgid "Couldn't allocate memory for filesystem types\n" >-msgstr "" >-"Impossible d'allouer de la mémoire pour les types de systèmes de fichiers\n" >+msgstr "Impossible d'allouer de la mémoire pour les types de systèmes de fichiers\n" > > #: misc/fsck.c:889 > #, c-format >@@ -3335,11 +3274,8 @@ msgid "--waiting-- (pass %d)\n" > msgstr "--en attente-- (passe %d)\n" > > #: misc/fsck.c:1051 >-msgid "" >-"Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n" >-msgstr "" >-"Usage : fsck [-ANPRTV] [ -C [fd] ] [-t type_sys_fichiers] " >-"[options_sys_fichiers] [sys_fichiers...]\n" >+msgid "Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n" >+msgstr "Usage : fsck [-ANPRTV] [ -C [fd] ] [-t type_sys_fichiers] [options_sys_fichiers] [sys_fichiers...]\n" > > #: misc/fsck.c:1093 > #, c-format >@@ -3396,22 +3332,17 @@ msgstr "durant la tentative d'exécution > > #: misc/mke2fs.c:206 > msgid "while processing list of bad blocks from program" >-msgstr "" >-"lors du traitement de la liste des blocs défectueux à partir du programme" >+msgstr "lors du traitement de la liste des blocs défectueux à partir du programme" > > #: misc/mke2fs.c:233 > #, c-format > msgid "Block %d in primary superblock/group descriptor area bad.\n" >-msgstr "" >-"Bloc %d dans la zone du descripteur de superbloc/groupe primaire est " >-"défectueux.\n" >+msgstr "Bloc %d dans la zone du descripteur de superbloc/groupe primaire est défectueux.\n" > > #: misc/mke2fs.c:235 > #, c-format > msgid "Blocks %u through %d must be good in order to build a filesystem.\n" >-msgstr "" >-"Blocs de %u à %d doivent être en bon état pour générer le système de " >-"fichiers.\n" >+msgstr "Blocs de %u à %d doivent être en bon état pour générer le système de fichiers.\n" > > #: misc/mke2fs.c:238 > msgid "Aborting....\n" >@@ -3726,8 +3657,7 @@ msgstr "blocs de %d octets trop gros pou > > #: misc/mke2fs.c:1147 > #, c-format >-msgid "" >-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n" >+msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n" > msgstr "" > "Avertissement : blocs de %d octets trop gros pour le système (max %d),\n" > "poursuite forcée\n" >@@ -3738,8 +3668,7 @@ msgstr "système de fichiers" > > #: misc/mke2fs.c:1188 resize/main.c:279 > msgid "while trying to determine filesystem size" >-msgstr "" >-"lors de la tentative de détermination de la taille du système de fichiers" >+msgstr "lors de la tentative de détermination de la taille du système de fichiers" > > #: misc/mke2fs.c:1194 > msgid "" >@@ -3775,8 +3704,7 @@ msgstr "" > > #: misc/mke2fs.c:1297 > msgid "while trying to determine hardware sector size" >-msgstr "" >-"lors de la tentative de détermination de la taille matérielle de secteur" >+msgstr "lors de la tentative de détermination de la taille matérielle de secteur" > > #: misc/mke2fs.c:1349 > msgid "reserved online resize blocks not supported on non-sparse filesystem" >@@ -4410,8 +4338,7 @@ msgstr "blocs de métadonnées" > #: resize/resize2fs.c:1528 > #, c-format > msgid "Should never happen: resize inode corrupt!\n" >-msgstr "" >-"Ne devrait jamais se produire : i-noeud de redimensionnement corrompu !\n" >+msgstr "Ne devrait jamais se produire : i-noeud de redimensionnement corrompu !\n" > > #~ msgid "" > #~ "%s is mounted; can't resize a mounted filesystem!\n" >@@ -4442,10 +4369,8 @@ msgstr "" > #~ "\tea_ver=<ea_version (1 or 2)\n" > #~ "\n" > #~ msgstr "" >-#~ "Les options étendues sont séparées par des virgules, et peuvent prendre " >-#~ "un argument\n" >-#~ "lequel peut être initialisé par un signe d'égalité ('='). Les options " >-#~ "RAID valides sont:\n" >+#~ "Les options étendues sont séparées par des virgules, et peuvent prendre un argument\n" >+#~ "lequel peut être initialisé par un signe d'égalité ('='). Les options RAID valides sont:\n" > #~ "\tea_ver=<ea_version (1 or 2)\n" > #~ "\n" > >@@ -4491,8 +4416,7 @@ msgstr "" > #~ msgstr "" > #~ "Usage: %s <périph1> <périph2> <périph3>\n" > #~ "\n" >-#~ "Ce programme affiche les informations des partitions pour un ensemble de " >-#~ "périphériques\n" >+#~ "Ce programme affiche les informations des partitions pour un ensemble de périphériques\n" > #~ "Une façon usuelle d'utiliser ce programme est:\n" > #~ "\n" > #~ "\t%s /dev/hda?\n" >@@ -4505,9 +4429,7 @@ msgstr "" > #~ msgstr "BLKGETSIZE ioctl" > > #~ msgid "Forcibly clearing HTREE flag on @i %d (%q). (Beta test code)\n" >-#~ msgstr "" >-#~ "Forcer la mise à zéro du drapeau HTREE sur l'@i %d (%q). (Code en phase " >-#~ "beta test)\n" >+#~ msgstr "Forcer la mise à zéro du drapeau HTREE sur l'@i %d (%q). (Code en phase beta test)\n" > > #~ msgid "(unknown os)" > #~ msgstr "(système d'exploitation inconnu)" >Index: e2fsprogs-1.39/po/nl.po >=================================================================== >--- e2fsprogs-1.39.orig/po/nl.po 2006-04-09 23:59:16.000000000 +0200 >+++ e2fsprogs-1.39/po/nl.po 2006-09-18 17:42:57.000000000 +0200 >@@ -65,13 +65,13 @@ msgstr "" > "Project-Id-Version: e2fsprogs 1.39-b2\n" > "Report-Msgid-Bugs-To: tytso@alum.mit.edu\n" > "POT-Creation-Date: 2006-03-29 15:30-0500\n" >-"PO-Revision-Date: 2006-04-07 00:28+0200\n" >+"PO-Revision-Date: 2006-08-28 16:32+0200\n" > "Last-Translator: Benno Schulenberg <benno@nietvergeten.nl>\n" > "Language-Team: Dutch <vertaling@vrijschrift.org>\n" > "MIME-Version: 1.0\n" > "Content-Type: text/plain; charset=UTF-8\n" > "Content-Transfer-Encoding: 8bit\n" >-"X-Generator: KBabel 1.11.2\n" >+"X-Generator: KBabel 1.11.4\n" > "Plural-Forms: nplurals=2; plural=(n != 1);\n" > > #: e2fsck/badblocks.c:22 misc/mke2fs.c:154 >@@ -99,7 +99,7 @@ msgstr "tijdens openen van %s" > #: e2fsck/badblocks.c:82 > #, c-format > msgid "while trying popen '%s'" >-msgstr "tijdens een 'popen()' van %s" >+msgstr "tijdens een popen() van %s" > > #: e2fsck/badblocks.c:93 misc/mke2fs.c:177 > msgid "while reading in list of bad blocks from file" >@@ -130,7 +130,7 @@ msgstr "Fout negeren" > > #: e2fsck/ehandler.c:60 > msgid "Force rewrite" >-msgstr "Herschrijven forceren" >+msgstr "Herschrijven afdwingen" > > #: e2fsck/ehandler.c:100 > #, c-format >@@ -178,7 +178,7 @@ msgstr "Gebruik: %s schijfnaam\n" > #: e2fsck/flushb.c:63 > #, c-format > msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n" >-msgstr "BLKFLSBUF-ioctl wordt niet ondersteund! Kan buffers niet leegmaken.\n" >+msgstr "ioctl(BLKFLSBUF) wordt niet ondersteund! Kan buffers niet leegmaken.\n" > > #: e2fsck/iscan.c:46 > #, c-format >@@ -247,7 +247,7 @@ msgstr "A<fout>" > > #: e2fsck/message.c:110 > msgid "bblock" >-msgstr "bblok" >+msgstr "b<fout>" > > #: e2fsck/message.c:111 > msgid "Bbitmap" >@@ -259,11 +259,11 @@ msgstr "c<fout>" > > #: e2fsck/message.c:113 > msgid "Cconflicts with some other fs @b" >-msgstr "c<fout>" >+msgstr "C<fout>" > > #: e2fsck/message.c:114 > msgid "iinode" >-msgstr "iinode" >+msgstr "i<fout>" > > #: e2fsck/message.c:115 > msgid "Iillegal" >@@ -404,7 +404,7 @@ msgstr "interne fout: kan geen dup_blk v > > #: e2fsck/pass1b.c:738 > msgid "returned from clone_file_block" >-msgstr "teruggekeerd van clone_file_block" >+msgstr "### teruggekeerd van clone_file_block()" > > #: e2fsck/pass1.c:430 > msgid "in-use inode map" >@@ -428,7 +428,7 @@ msgstr "bezig met inode-scan" > > #: e2fsck/pass1.c:917 > msgid "Pass 1" >-msgstr "Doorloop 1" >+msgstr "Stap 1" > > #: e2fsck/pass1.c:976 > #, c-format >@@ -469,7 +469,7 @@ msgstr "inodetabel" > > #: e2fsck/pass2.c:287 > msgid "Pass 2" >-msgstr "Doorloop 2" >+msgstr "Stap 2" > > #: e2fsck/pass3.c:79 > msgid "inode done bitmap" >@@ -481,7 +481,7 @@ msgstr "Piekgeheugengebruik" > > #: e2fsck/pass3.c:143 > msgid "Pass 3" >-msgstr "Doorloop 3" >+msgstr "Stap 3" > > #: e2fsck/pass3.c:334 > msgid "inode loop detection bitmap" >@@ -489,11 +489,11 @@ msgstr "bitkaart van inode-lusdetectie" > > #: e2fsck/pass4.c:174 > msgid "Pass 4" >-msgstr "Doorloop 4" >+msgstr "Stap 4" > > #: e2fsck/pass5.c:70 > msgid "Pass 5" >-msgstr "Doorloop 5" >+msgstr "Stap 5" > > #: e2fsck/problem.c:50 > msgid "(no prompt)" >@@ -673,7 +673,7 @@ msgid "" > "WARNING: SEVERE DATA LOSS POSSIBLE.\n" > msgstr "" > "inodetabel voor groep %g zit niet in groep (blok %b)\n" >-"WAARSCHUWING: GROOT VERLIES VAN GEGEVENS IS MOGELIJK.\n" >+"WAARSCHUWING: ERNSTIG VERLIES VAN GEGEVENS IS MOGELIJK.\n" > > #. @-expanded: \n > #. @-expanded: The superblock could not be read or does not describe a correct ext2\n >@@ -697,7 +697,7 @@ msgstr "" > "Het superblok is onleesbaar of omschrijft geen geldig ext2-bestandssysteem.\n" > "Als het apparaat juist is en werkelijk een ext2-bestandssysteem bevat\n" > "(en niet swap of UFS of iets anders), dan is het superblok beschadigd.\n" >-"U kunt proberen een ander superblok te gebruiken:\n" >+"U kunt dan proberen een ander superblok te gebruiken:\n" > " e2fsck -b %S <apparaat>\n" > "\n" > >@@ -735,7 +735,7 @@ msgstr "Superblok: blokken_per_groep = % > #. @-expanded: superblock first_data_block = %b, should have been %c\n > #: e2fsck/problem.c:149 > msgid "@S first_data_@b = %b, should have been %c\n" >-msgstr "Superblok: eerste_gegevens_block = %b, zou %c moeten zijn.\n" >+msgstr "Superblok: eerste_gegevens_blok = %b, zou %c moeten zijn.\n" > > #. @-expanded: filesystem did not have a UUID; generating one.\n > #. @-expanded: \n >@@ -758,16 +758,16 @@ msgid "" > "\n" > msgstr "" > "Opmerking: als meerdere blokken van inode-bitkaarten of blok-bitkaarten\n" >-"herplaatst moeten worden, of een deel van de indotabel, zou u misschien\n" >+"herplaatst moeten worden, of een deel van de inodetabel, zou u misschien\n" > "eerst 'e2fsck' kunnen draaien met de optie '-b %S'. Misschien doet het\n" >-"probleem zich alleen voor in het eerste superblok, een reservekopie is\n" >+"probleem zich alleen voor in het eerste superblok; een reservekopie is\n" > "mogelijk nog in orde.\n" > "\n" > > #. @-expanded: Corruption found in superblock. (%s = %N).\n > #: e2fsck/problem.c:168 > msgid "Corruption found in @S. (%s = %N).\n" >-msgstr "Beschadiging gevonden in het superblok. (%s = %N).\n" >+msgstr "Beschadiging gevonden in het superblok: %s = %N.\n" > > #. @-expanded: Error determining size of the physical device: %m\n > #: e2fsck/problem.c:173 >@@ -835,7 +835,7 @@ msgstr "Het superblok van het ext3-journ > #: e2fsck/problem.c:225 > #, c-format > msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n" >-msgstr "Superblok heeft geen journalvlag, maar heeft wel een ext3-journal %s.\n" >+msgstr "Superblok heeft geen journalvlag gezet, maar heeft wel een ext3-journal %s.\n" > > #. @-expanded: superblock has ext3 needs_recovery flag set, but no journal.\n > #: e2fsck/problem.c:230 >@@ -861,13 +861,13 @@ msgstr "Journal toch afspelen" > #: e2fsck/problem.c:250 > msgid "Recovery flag not set in backup @S, so running @j anyway.\n" > msgstr "" >-"Een reservekopie van het superblok kent geen reddingsvlag,\n" >+"Reservekopieën van het superblok kennen geen reddingsvlag;\n" > "het niet-lege journal wordt daarom afgespeeld.\n" > > #. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n > #: e2fsck/problem.c:255 > msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n" >-msgstr "%s verweesde inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n" >+msgstr "%s van verweesde inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n" > > #. @-expanded: illegal block #%B (%b) found in orphaned inode %i.\n > #: e2fsck/problem.c:260 >@@ -953,7 +953,7 @@ msgid "" > "Backing up @j @i @b information.\n" > "\n" > msgstr "" >-"Bezig met reservekopie maken van informatie in journal-inodeblokken.\n" >+"Maken van reservekopie van informatie in journal-inodeblokken...\n" > "\n" > > #. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n >@@ -979,12 +979,12 @@ msgstr "Ongeldige 'resize'-inode. " > #. @-expanded: superblock last mount time is in the future. > #: e2fsck/problem.c:337 > msgid "@S last mount time is in the future. " >-msgstr "Laatste aankoppelingstijd is volgens het superblok in de toekomst. " >+msgstr "Laatste aankoppelingstijd ligt volgens het superblok in de toekomst. " > > #. @-expanded: superblock last write time is in the future. > #: e2fsck/problem.c:342 > msgid "@S last write time is in the future. " >-msgstr "Laatste schrijftijd is volgens het superblok in de toekomst. " >+msgstr "Laatste schrijftijd ligt volgens het superblok in de toekomst. " > > #. @-expanded: superblock hint for external superblock should be %X. > #: e2fsck/problem.c:346 >@@ -995,7 +995,7 @@ msgstr "De superblokhint voor een extern > #. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n > #: e2fsck/problem.c:353 > msgid "Pass 1: Checking @is, @bs, and sizes\n" >-msgstr "Doorloop 1: Controle van inodes, blokken, en groottes\n" >+msgstr "Stap 1: Controle van inodes, blokken, en groottes\n" > > #. @-expanded: root inode is not a directory. > #: e2fsck/problem.c:357 >@@ -1058,12 +1058,12 @@ msgstr "De inode-bitkaart %b van groep % > #. @-expanded: inode %i, i_size is %Is, should be %N. > #: e2fsck/problem.c:412 > msgid "@i %i, i_size is %Is, @s %N. " >-msgstr "Inode %i, i_size is %Is, zou %N moeten zijn. " >+msgstr "Inode %i, 'i_size' is %Is, zou %N moeten zijn. " > > #. @-expanded: inode %i, i_blocks is %Ib, should be %N. > #: e2fsck/problem.c:417 > msgid "@i %i, i_@bs is %Ib, @s %N. " >-msgstr "Inode %i, i_blocks is %Ib, zou %N moeten zijn. " >+msgstr "Inode %i, 'i_blocks' is %Ib, zou %N moeten zijn. " > > #. @-expanded: illegal block #%B (%b) in inode %i. > #: e2fsck/problem.c:422 >@@ -1079,7 +1079,7 @@ msgstr "Blok #%B (%b) overlapt metadata > #: e2fsck/problem.c:432 > #, c-format > msgid "@i %i has illegal @b(s). " >-msgstr "Inode %i heeft ongeldig blok of blokken. " >+msgstr "Inode %i bevat ongeldig(e) blok(ken). " > > #. @-expanded: Too many illegal blocks in inode %i.\n > #: e2fsck/problem.c:437 >@@ -1095,7 +1095,7 @@ msgstr "Ongeldig blok #%B (%b) in slecht > #. @-expanded: Bad block inode has illegal block(s). > #: e2fsck/problem.c:447 > msgid "Bad @b @i has illegal @b(s). " >-msgstr "Slechte-blokken-inode heeft ongeldig blok of blokken. " >+msgstr "Slechte-blokken-inode bevat ongeldig(e) blok(ken). " > > #. @-expanded: Duplicate or bad block in use!\n > #: e2fsck/problem.c:452 >@@ -1143,7 +1143,7 @@ msgid "" > "\n" > msgstr "" > "U kunt dit blok uit de lijst van slechte blokken wissen en hopen\n" >-"dat het blok toch wel goed is. Maar er wordt niets gegarandeerd.\n" >+"dat het blok toch goed is. Maar er zijn geen garanties.\n" > "\n" > > #. @-expanded: The primary superblock (%b) is on the bad block list.\n >@@ -1164,12 +1164,12 @@ msgstr "Waarschuwing: groep %g heeft een > #. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n > #: e2fsck/problem.c:496 > msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n" >-msgstr "Waarschuwing: groep %g heeft een slecht blok (%b) in de groepsbeschrijvers.\n" >+msgstr "Waarschuwing: groep %g bevat een slecht blok (%b) in de groepsbeschrijvers.\n" > > #. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n > #: e2fsck/problem.c:502 > msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n" >-msgstr "Interne fout?: blok %b is zonder reden geclaimd in process_bad_block.\n" >+msgstr "Interne fout?: blok %b is zonder reden geclaimd in process_bad_block().\n" > > #. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n > #: e2fsck/problem.c:508 >@@ -1218,7 +1218,7 @@ msgstr "Fout tijdens reserveren van blok > #: e2fsck/problem.c:548 > #, c-format > msgid "@A icount link information: %m\n" >-msgstr "Fout tijdens reserveren van icount-link-informatie: %m\n" >+msgstr "Fout tijdens reserveren van 'icount'-link-informatie: %m\n" > > #. @-expanded: error allocating directory block array: %m\n > #: e2fsck/problem.c:553 >@@ -1291,7 +1291,7 @@ msgstr "Journal-inode is niet in gebruik > #. @-expanded: journal is not regular file. > #: e2fsck/problem.c:618 > msgid "@j is not regular file. " >-msgstr "journal is geen normaal bestand. " >+msgstr "Journal is geen normaal bestand. " > > #. @-expanded: inode %i was part of the orphaned inode list. > #: e2fsck/problem.c:623 >@@ -1317,7 +1317,7 @@ msgstr "Fout tijdens lezen van blok %b m > #. @-expanded: inode %i has a bad extended attribute block %b. > #: e2fsck/problem.c:644 > msgid "@i %i has a bad @a @b %b. " >-msgstr "Inode %i heeft een slecht blok %b met uitgebreide kenmerken. " >+msgstr "Inode %i bevat een slecht blok %b met uitgebreide kenmerken. " > > #. @-expanded: Error reading extended attribute block %b (%m). > #: e2fsck/problem.c:649 >@@ -1401,7 +1401,7 @@ msgstr "Inode %i van 'htree'-map heeft e > #. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n > #: e2fsck/problem.c:723 > msgid "@h %i has an unsupported hash version (%N)\n" >-msgstr "Inode %i van 'htree'-map heeft een niet-ondersteunde hash-versie (%N).\n" >+msgstr "Inode %i van 'htree'-map gebruikt een niet-ondersteunde hash-versie (%N).\n" > > #. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n > #: e2fsck/problem.c:728 >@@ -1421,7 +1421,7 @@ msgid "" > "Bad @b @i has an indirect @b (%b) that conflicts with\n" > "@f metadata. " > msgstr "" >-"Een slechte-blokken-inode heeft een indirect blok (%b) dat tegenstrijdig\n" >+"Slechte-blokken-inode bevat een indirect blok (%b) dat strijdig\n" > "is met de metagegevens van het bestandssysteem. " > > #. @-expanded: Resize inode (re)creation failed: %m. >@@ -1470,9 +1470,9 @@ msgid "" > "Pass 1B: Rescanning for @m @bs\n" > msgstr "" > "\n" >-"Extra doorlopen voor het verzoenen van blokken die door meer\n" >-"dan één inode geclaimd worden...\n" >-"Pass 1B: Opnieuw zoeken naar meervoudig-geclaimde blokken\n" >+"Er zijn extra stappen nodig voor het verzoenen van blokken die door\n" >+"meer dan één inode geclaimd worden...\n" >+"Stap 1B: Opnieuw zoeken naar meervoudig-geclaimde blokken\n" > > #. @-expanded: multiply-claimed block(s) in inode %i: > #: e2fsck/problem.c:787 >@@ -1505,12 +1505,12 @@ msgstr "Fout tijdens bijstellen van verw > #. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n > #: e2fsck/problem.c:823 > msgid "Pass 1C: Scanning directories for @is with @m @bs\n" >-msgstr "Doorloop 1C: Doorzoeken van mappen naar inodes met meervoudig-geclaimde blokken\n" >+msgstr "Stap 1C: Doorzoeken van mappen naar inodes met meervoudig-geclaimde blokken\n" > > #. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n > #: e2fsck/problem.c:829 > msgid "Pass 1D: Reconciling @m @bs\n" >-msgstr "Doorloop 1D: Verzoenen van meervoudig-geclaimde blokken\n" >+msgstr "Stap 1D: Verzoenen van meervoudig-geclaimde blokken\n" > > #. @-expanded: File %Q (inode #%i, mod time %IM) \n > #. @-expanded: has %B multiply-claimed block(s), shared with %N file(s):\n >@@ -1520,7 +1520,7 @@ msgid "" > " has %B @m @b(s), shared with %N file(s):\n" > msgstr "" > "Bestand %Q (inode %i, wijzigingstijd %IM)\n" >-" heeft %B meervoudig-geclaimd(e) blok(ken), gedeeld met %N bestand(en):\n" >+" bevat %B meervoudig-geclaimd(e) blok(ken), gedeeld met %N bestand(en):\n" > > #. @-expanded: \t%Q (inode #%i, mod time %IM)\n > #: e2fsck/problem.c:840 >@@ -1560,7 +1560,7 @@ msgstr "Kan bestand niet klonen: %m\n" > #. @-expanded: Pass 2: Checking directory structure\n > #: e2fsck/problem.c:874 > msgid "Pass 2: Checking @d structure\n" >-msgstr "Doorloop 2: Controle van mappenstructuur\n" >+msgstr "Stap 2: Controle van mappenstructuur\n" > > #. @-expanded: invalid inode number for '.' in directory inode %i.\n > #: e2fsck/problem.c:879 >@@ -1576,7 +1576,7 @@ msgstr "@E heeft een ongeldig inodenumme > #. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di. > #: e2fsck/problem.c:889 > msgid "@E has @D/unused @i %Di. " >-msgstr "@E heeft een verwijderde of ongebruikte inode %Di. " >+msgstr "@E bevat een verwijderde of ongebruikte inode %Di. " > > #. @-expanded: entry '%Dn' in %p (%i) is a link to '.' > #: e2fsck/problem.c:894 >@@ -1628,27 +1628,27 @@ msgstr "Tweede item '%Dn' (inode=%Di) in > #. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n > #: e2fsck/problem.c:939 > msgid "i_faddr @F %IF, @s zero.\n" >-msgstr "i_faddr @F is %IF, moet nul zijn.\n" >+msgstr "'i_faddr' @F is %IF, moet nul zijn.\n" > > #. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n > #: e2fsck/problem.c:944 > msgid "i_file_acl @F %If, @s zero.\n" >-msgstr "i_file_acl @F is %If, moet nul zijn.\n" >+msgstr "'i_file_acl' @F is %If, moet nul zijn.\n" > > #. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n > #: e2fsck/problem.c:949 > msgid "i_dir_acl @F %Id, @s zero.\n" >-msgstr "i_dir_acl @F is %Id, moet nul zijn.\n" >+msgstr "'i_dir_acl' @F is %Id, moet nul zijn.\n" > > #. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n > #: e2fsck/problem.c:954 > msgid "i_frag @F %N, @s zero.\n" >-msgstr "i_frag @F is %N, moet nul zijn.\n" >+msgstr "'i_frag' @F is %N, moet nul zijn.\n" > > #. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n > #: e2fsck/problem.c:959 > msgid "i_fsize @F %N, @s zero.\n" >-msgstr "i_fsize @F is %N, moet nul zijn.\n" >+msgstr "'i_fsize' @F is %N, moet nul zijn.\n" > > #. @-expanded: inode %i (%Q) has invalid mode (%Im).\n > #: e2fsck/problem.c:964 >@@ -1685,12 +1685,12 @@ msgstr "Item '..' in map-inode %i eindig > #. @-expanded: inode %i (%Q) is an illegal character device.\n > #: e2fsck/problem.c:994 > msgid "@i %i (%Q) is an @I character @v.\n" >-msgstr "Inode %i (%Q) is een ongeldig byteapparaat.\n" >+msgstr "Inode %i (%Q) is een ongeldig byte-apparaat.\n" > > #. @-expanded: inode %i (%Q) is an illegal block device.\n > #: e2fsck/problem.c:999 > msgid "@i %i (%Q) is an @I @b @v.\n" >-msgstr "Inode %i (%Q) is een ongeldig blokapparaat.\n" >+msgstr "Inode %i (%Q) is een ongeldig blok-apparaat.\n" > > #. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n > #: e2fsck/problem.c:1004 >@@ -1878,13 +1878,13 @@ msgid "" > "\n" > msgstr "" > "Dubbel item '%Dn' gevonden.\n" >-"\tMap %p (%i) wordt gemarkeerd om opnieuw te worden opgebouwd.\n" >+" Map %p (%i) wordt gemarkeerd om opnieuw te worden opgebouwd.\n" > "\n" > > #. @-expanded: Pass 3: Checking directory connectivity\n > #: e2fsck/problem.c:1180 > msgid "Pass 3: Checking @d connectivity\n" >-msgstr "Doorloop 3: Controle van verbindingen tussen mappen\n" >+msgstr "Stap 3: Controle van verbindingen tussen mappen\n" > > #. @-expanded: root inode not allocated. > #: e2fsck/problem.c:1185 >@@ -1938,25 +1938,25 @@ msgstr "Fout tijdens zoeken van /lost+fo > #: e2fsck/problem.c:1230 > #, c-format > msgid "ext2fs_new_@b: %m while trying to create /@l @d\n" >-msgstr "ext2fs_new_@b: %m tijdens maken van /lost+found\n" >+msgstr "ext2fs_new_block(): %m tijdens maken van /lost+found\n" > > #. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n > #: e2fsck/problem.c:1235 > #, c-format > msgid "ext2fs_new_@i: %m while trying to create /@l @d\n" >-msgstr "ext2fs_new_@i: %m tijdens maken van /lost+found\n" >+msgstr "ext2fs_new_inode(): %m tijdens maken van /lost+found\n" > > #. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n > #: e2fsck/problem.c:1240 > #, c-format > msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n" >-msgstr "ext2fs_new_dir_@b: %m tijdens maken van nieuw mapblok\n" >+msgstr "ext2fs_new_dir_block(): %m tijdens maken van nieuw mapblok\n" > > #. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n > #: e2fsck/problem.c:1245 > #, c-format > msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n" >-msgstr "ext2fs_write_dir_@b: %m tijdens maken van mapblok voor /lost+found\n" >+msgstr "ext2fs_write_dir_block(): %m tijdens maken van mapblok voor /lost+found\n" > > #. @-expanded: Error while adjusting inode count on inode %i\n > #: e2fsck/problem.c:1250 >@@ -2001,7 +2001,7 @@ msgstr "Fout tijdens maken van /lost+fou > #. @-expanded: root inode is not a directory; aborting.\n > #: e2fsck/problem.c:1280 > msgid "@r is not a @d; aborting.\n" >-msgstr "De root-inode is geen map; e2fsck breekt nu af.\n" >+msgstr "De root-inode is geen map. Gestopt.\n" > > #. @-expanded: Cannot proceed without a root inode.\n > #: e2fsck/problem.c:1285 >@@ -2016,12 +2016,12 @@ msgstr "/lost+found (inode %i) is geen m > > #: e2fsck/problem.c:1302 > msgid "Pass 3A: Optimizing directories\n" >-msgstr "Doorloop 3A: Optimalisatie van mappen\n" >+msgstr "Stap 3A: Optimalisatie van mappen\n" > > #: e2fsck/problem.c:1307 > #, c-format > msgid "Failed to create dirs_to_hash iterator: %m" >-msgstr "Maken van dirs_to_hash-iterator is mislukt: %m" >+msgstr "Maken van 'dirs_to_hash-iterator' is mislukt: %m" > > #: e2fsck/problem.c:1312 > msgid "Failed to optimize directory %q (%d): %m" >@@ -2033,7 +2033,7 @@ msgstr "Optimaliseren van mappen: " > > #: e2fsck/problem.c:1334 > msgid "Pass 4: Checking reference counts\n" >-msgstr "Doorloop 4: Controle van verwijzingsaantallen\n" >+msgstr "Stap 4: Controle van verwijzingsaantallen\n" > > #. @-expanded: unattached zero-length inode %i. > #: e2fsck/problem.c:1339 >@@ -2062,7 +2062,7 @@ msgid "" > "@i_link_info[%i] is %N, @i.i_links_count is %Il. They @s the same!\n" > msgstr "" > "WAARSCHUWING: programmafout in e2fsck!\n" >-" OF IEMAND (U) IS EEN AANGEKOPPELD BESTANDSSYSTEEM AAN HET CONTROLEREN!\n" >+" *of* U BENT EEN AANGEKOPPELD BESTANDSSYSTEEM AAN HET CONTROLEREN!\n" > "\n" > "inode_link_info[%i] is %N, inode.i_links_count is %Il.\n" > "Deze horen hetzelfde te zijn!\n" >@@ -2070,7 +2070,7 @@ msgstr "" > #. @-expanded: Pass 5: Checking group summary information\n > #: e2fsck/problem.c:1363 > msgid "Pass 5: Checking @g summary information\n" >-msgstr "Doorloop 5: Controle van groepssamenvattingen\n" >+msgstr "Stap 5: Controle van groepssamenvattingen\n" > > #. @-expanded: Padding at end of inode bitmap is not set. > #: e2fsck/problem.c:1368 >@@ -2121,7 +2121,7 @@ msgstr "Verkeerd aantal blokken (%b, get > #. @-expanded: endpoints (%i, %j)\n > #: e2fsck/problem.c:1443 > msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n" >-msgstr "Programmafout in e2fsck: in bestandssysteem %N komen de bitkaart-eindpunten (%b, %c) niet overeen met de berekende eindpunten (%i, %j)\n" >+msgstr "PROGRAMMAFOUT in e2fsck: in bestandssysteem %N komen de bitkaart-eindpunten (%b, %c) niet overeen met de berekende eindpunten (%i, %j)\n" > > #: e2fsck/problem.c:1449 > msgid "Internal error: fudging end of bitmap (%N)\n" >@@ -2142,7 +2142,7 @@ msgstr "Fout tijdens kopiëren naar verv > #: e2fsck/problem.c:1597 > #, c-format > msgid "Unhandled error code (0x%x)!\n" >-msgstr "Onbehandelde foutcode (0x%x)!\n" >+msgstr "Onbekende foutcode (0x%x)!\n" > > #: e2fsck/problem.c:1691 > msgid "IGNORED" >@@ -2164,29 +2164,29 @@ msgstr "tijdens start van inode-scan" > > #: e2fsck/scantest.c:132 > msgid "while doing inode scan" >-msgstr "tijdens uitvoeren van inode-scan" >+msgstr "tijdens uitvoering van inode-scan" > > #: e2fsck/super.c:200 > #, c-format > msgid "while calling ext2fs_block_iterate for inode %d" >-msgstr "tijdens aanroep van ext2fs_block_iterate voor inode %d" >+msgstr "tijdens aanroep van ext2fs_block_iterate() voor inode %d" > > #: e2fsck/super.c:223 > #, c-format > msgid "while calling ext2fs_adjust_ea_refocunt for inode %d" >-msgstr "tijdens aanroep van ext2fs_adjust_ea_refocunt voor inode %d" >+msgstr "tijdens aanroep van ext2fs_adjust_ea_refcount() voor inode %d" > > #: e2fsck/super.c:281 > msgid "Truncating" >-msgstr "Bezig met afkappen" >+msgstr "Afkappen" > > #: e2fsck/super.c:282 > msgid "Clearing" >-msgstr "Bezig met wissen" >+msgstr "Wissen" > > #: e2fsck/swapfs.c:98 > msgid "while calling ext2fs_block_iterate" >-msgstr "tijdens aanroep van ext2fs_block_iterate" >+msgstr "tijdens aanroep van ext2fs_block_iterate()" > > #: e2fsck/swapfs.c:104 > msgid "while calling iterator function" >@@ -2209,7 +2209,7 @@ msgstr "tijdens schrijven van inodetabel > #: e2fsck/swapfs.c:223 > #, c-format > msgid "Pass 0: Doing byte-swap of filesystem\n" >-msgstr "Doorloop 0: Verwisseling van hoge en lage bytes in hele bestandssysteem\n" >+msgstr "Stap 0: Verwisseling van hoge en lage bytes in hele bestandssysteem\n" > > #: e2fsck/swapfs.c:230 > #, c-format >@@ -2251,10 +2251,10 @@ msgstr "" > "\n" > "Noodhulp:\n" > " -p Automatische reparatie (zonder vragen)\n" >-" -n Bestandssyteem niet veranderen\n" >+" -n Bestandssyteem niet veranderen; op alle vragen \"nee\" aannemen\n" > " -y Als antwoord op alle vragen \"ja\" aannemen\n" > " -c Op slechte blokken controleren en deze aan lijst toevoegen\n" >-" -f Controle forceren ook als bestandssysteem schoon is\n" >+" -f Een controle afdwingen, ook als het bestandssysteem schoon is\n" > > #: e2fsck/unix.c:86 > #, c-format >@@ -2304,7 +2304,7 @@ msgid "" > "Cannot continue, aborting.\n" > "\n" > msgstr "" >-"Kan niet verder; e2fsck breekt af.\n" >+"Kan niet verder. Gestopt.\n" > "\n" > > #: e2fsck/unix.c:202 >@@ -2330,7 +2330,7 @@ msgstr "Wilt u echt doorgaan?" > #: e2fsck/unix.c:207 > #, c-format > msgid "check aborted.\n" >-msgstr "controle afgebroken.\n" >+msgstr "controle is afgebroken.\n" > > #: e2fsck/unix.c:277 > msgid " contains a file system with errors" >@@ -2352,7 +2352,7 @@ msgstr " is gedurende %u dagen niet geco > > #: e2fsck/unix.c:300 > msgid ", check forced.\n" >-msgstr ", geforceerde controle.\n" >+msgstr ", gedwongen controle.\n" > > #: e2fsck/unix.c:303 > #, c-format >@@ -2394,7 +2394,7 @@ msgid "" > "\t%s\n" > msgstr "" > "Syntaxfout in e2fsck-configuratiebestand (%s, regel #%d)\n" >-"\t%s\n" >+" %s\n" > > #: e2fsck/unix.c:623 > #, c-format >@@ -2455,15 +2455,15 @@ msgstr "voor interactieve reparaties is > #: e2fsck/unix.c:940 > #, c-format > msgid "%s trying backup blocks...\n" >-msgstr "%s zoeken naar reservekopieën...\n" >+msgstr "%s reservekopieën worden bekeken...\n" > > #: e2fsck/unix.c:941 > msgid "Couldn't find ext2 superblock," >-msgstr "Kan het ext2-superblok niet vinden," >+msgstr "Kan het ext2-superblok niet vinden --" > > #: e2fsck/unix.c:942 > msgid "Group descriptors look bad..." >-msgstr "Groepsdescriptors zien er slecht uit..." >+msgstr "Groepsbeschrijvers zien er slecht uit --" > > #: e2fsck/unix.c:953 > #, c-format >@@ -2542,7 +2542,7 @@ msgid "" > "\tbut filesystem %s has HTREE directories.\n" > msgstr "" > "Deze e2fsck is niet gecompileerd met 'htree'-ondersteuning,\n" >-"\tmaar bestandssysteem %s heeft 'htree'-mappen.\n" >+"maar het bestandssysteem %s bevat 'htree'-mappen.\n" > > #: e2fsck/unix.c:1118 > #, c-format >@@ -2588,7 +2588,7 @@ msgstr "" > #: e2fsck/unix.c:1174 > #, c-format > msgid "%s: ***** REBOOT LINUX *****\n" >-msgstr "%s: ***** REBOOTEN *****\n" >+msgstr "%s: ***** HERSTART UW SYSTEEM *****\n" > > #: e2fsck/unix.c:1182 > #, c-format >@@ -2670,7 +2670,7 @@ msgstr "nee" > #: e2fsck/util.c:213 > #, c-format > msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s" >-msgstr "e2fsck_read_bitmaps: ongeldige bitkaartblokken voor %s" >+msgstr "e2fsck_read_bitmaps(): ongeldige bitkaartblokken voor %s" > > #: e2fsck/util.c:218 > msgid "reading inode and block bitmaps" >@@ -2710,7 +2710,7 @@ msgstr "" > "\n" > "\n" > "%s: ONVERWACHTE INCONSISTENTIE; voer 'fsck' met de hand uit\n" >-"\t(dat wil zeggen: zonder de opties '-a' of '-p').\n" >+" (dat wil zeggen: zonder de opties '-a' of '-p').\n" > > #: e2fsck/util.c:330 > #, c-format >@@ -2744,7 +2744,7 @@ msgstr "tijdens schrijven van inode %ld > > #: misc/badblocks.c:60 > msgid "done \n" >-msgstr "klaar \n" >+msgstr "voltooid \n" > > #: misc/badblocks.c:78 > #, c-format >@@ -2840,7 +2840,9 @@ msgstr "%s is aangekoppeld; " > > #: misc/badblocks.c:786 > msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n" >-msgstr "'badblocks' wordt geforceerd uitgevoerd, hopend dat /etc/mtab onjuist is.\n" >+msgstr "" >+"maar 'badblocks' wordt gedwongen uitgevoerd.\n" >+"Hoop dat /etc/mtab onjuist is.\n" > > #: misc/badblocks.c:791 > msgid "it's not safe to run badblocks!\n" >@@ -2853,17 +2855,17 @@ msgstr "%s wordt blijkbaar gebruikt door > > #: misc/badblocks.c:799 > msgid "badblocks forced anyway.\n" >-msgstr "'badblocks' wordt geforceerd uitgevoerd.\n" >+msgstr "maar 'badblocks' wordt gedwongen uitgevoerd.\n" > > #: misc/badblocks.c:861 > #, c-format > msgid "bad block size - %s" >-msgstr "ongeldige blokgrootte - %s" >+msgstr "ongeldige blokgrootte: %s" > > #: misc/badblocks.c:918 > #, c-format > msgid "can't allocate memory for test_pattern - %s" >-msgstr "kan geen geheugen reserveren voor testpatroon - %s" >+msgstr "kan geen geheugen reserveren voor testpatroon -- %s" > > #: misc/badblocks.c:932 > #, c-format >@@ -2891,12 +2893,12 @@ msgstr "tijdens bepalen van apparaatgroo > #: misc/badblocks.c:980 misc/mke2fs.c:1155 > #, c-format > msgid "invalid blocks count - %s" >-msgstr "ongeldig blokkenaantal - %s" >+msgstr "ongeldig blokkenaantal: %s" > > #: misc/badblocks.c:989 > #, c-format > msgid "invalid starting block - %s" >-msgstr "ongeldig beginblok - %s" >+msgstr "ongeldig beginblok: %s" > > #: misc/badblocks.c:995 > #, c-format >@@ -2924,7 +2926,7 @@ msgstr "Gebruik: %s [-RV] [-+=AacDdijsS > #: misc/chattr.c:148 > #, c-format > msgid "bad version - %s\n" >-msgstr "ongeldige versie - %s\n" >+msgstr "ongeldige versie: %s\n" > > #: misc/chattr.c:192 misc/lsattr.c:113 > #, c-format >@@ -2958,7 +2960,7 @@ msgstr "tijdens zetten van versie op %s" > > #: misc/chattr.c:255 > msgid "Couldn't allocate path variable in chattr_dir_proc" >-msgstr "Kan geen padvariabele reserveren in chattr_dir_proc" >+msgstr "Kan geen padvariabele reserveren in chattr_dir_proc()" > > #: misc/chattr.c:291 > msgid "= is incompatible with - and +\n" >@@ -3203,9 +3205,9 @@ msgid "" > "\tshould fix your /etc/fstab file as soon as you can.\n" > "\n" > msgstr "" >-"WAARSCHUWING: /etc/fstab bevat geen zesde veld (een fsck-doorloopnummer).\n" >-" Er wordt nu omheen gewerkt, maar u zou dit veld bij\n" >-" de eerstvolgende gelegenheid toe dienen te voegen.\n" >+"WAARSCHUWING: /etc/fstab bevat geen zesde veld (een fsck-volgnummer).\n" >+" Er wordt nu omheengewerkt, maar u zou dit veld bij\n" >+" de eerstvolgende gelegenheid toe dienen te voegen.\n" > "\n" > > #: misc/fsck.c:472 >@@ -3262,7 +3264,7 @@ msgstr "Alle bestandssystemen worden gec > #: misc/fsck.c:1031 > #, c-format > msgid "--waiting-- (pass %d)\n" >-msgstr "--wachten-- (doorloop %d)\n" >+msgstr "--wachten-- (volgnummer %d)\n" > > #: misc/fsck.c:1051 > msgid "Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n" >@@ -3314,7 +3316,7 @@ msgstr "" > #: misc/mke2fs.c:195 > #, c-format > msgid "Running command: %s\n" >-msgstr "Uitvoering van opdracht: %s\n" >+msgstr "Uitgevoerde opdracht is: %s\n" > > #: misc/mke2fs.c:199 > #, c-format >@@ -3333,11 +3335,13 @@ msgstr "Blok %d in het primaire superblo > #: misc/mke2fs.c:235 > #, c-format > msgid "Blocks %u through %d must be good in order to build a filesystem.\n" >-msgstr "Blokken %u tot en met %d moeten goed zijn om een bestandssysteem te kunnen maken.\n" >+msgstr "" >+"Blokken %u tot en met %d moeten goed zijn\n" >+"om een bestandssysteem te kunnen maken.\n" > > #: misc/mke2fs.c:238 > msgid "Aborting....\n" >-msgstr "Bezig met afbreken...\n" >+msgstr "Gestopt...\n" > > #: misc/mke2fs.c:258 > #, c-format >@@ -3346,17 +3350,17 @@ msgid "" > "\tbad blocks.\n" > "\n" > msgstr "" >-"Waarschuwing: de reservekopie van het superblok of van de groepsbeschrijvers\n" >-" beginnend bij blok %u bevat slechte blokken.\n" >+"Waarschuwing: de reservekopie van het superblok en de groepsbeschrijvers,\n" >+"beginnend bij blok %u, bevat slechte blokken.\n" > "\n" > > #: misc/mke2fs.c:276 > msgid "while marking bad blocks as used" >-msgstr "tijdens het markeren van slechte blokken als gebruikt" >+msgstr "tijdens het markeren van slechte blokken (als zijnde in gebruik)" > > #: misc/mke2fs.c:334 > msgid "done \n" >-msgstr "klaar \n" >+msgstr "voltooid \n" > > #: misc/mke2fs.c:369 > msgid "while allocating zeroizing buffer" >@@ -3471,7 +3475,7 @@ msgstr "%u inodes, %u blokken\n" > #: misc/mke2fs.c:642 > #, c-format > msgid "%u blocks (%2.2f%%) reserved for the super user\n" >-msgstr "%u blokken (%2.2f%%) gereserveerd voor de superuser\n" >+msgstr "%u blokken (%2.2f%%) gereserveerd voor systeembeheer\n" > > #: misc/mke2fs.c:645 > #, c-format >@@ -3561,7 +3565,7 @@ msgid "" > "\t%s\n" > msgstr "" > "Syntaxfout in mke2fs-configuratiebestand (%s, regel #%d)\n" >-"\t%s\n" >+" %s\n" > > #: misc/mke2fs.c:841 misc/tune2fs.c:303 > #, c-format >@@ -3571,7 +3575,7 @@ msgstr "Ongeldige optie van bestandssyst > #: misc/mke2fs.c:938 > #, c-format > msgid "invalid block size - %s" >-msgstr "ongeldige blokgrootte - %s" >+msgstr "ongeldige blokgrootte: %s" > > #: misc/mke2fs.c:942 > #, c-format >@@ -3581,7 +3585,7 @@ msgstr "Waarschuwing: blokgrootte %d is > #: misc/mke2fs.c:959 > #, c-format > msgid "invalid fragment size - %s" >-msgstr "ongeldige fragmentgrootte - %s" >+msgstr "ongeldige fragmentgrootte: %s" > > #: misc/mke2fs.c:965 > #, c-format >@@ -3603,29 +3607,29 @@ msgstr "ongeldige inodeverhouding %s (mi > > #: misc/mke2fs.c:1004 > msgid "in malloc for bad_blocks_filename" >-msgstr "onvoldoende geheugen" >+msgstr "onvoldoende geheugen in bad_blocks_filename()" > > #: misc/mke2fs.c:1013 > #, c-format > msgid "invalid reserved blocks percent - %s" >-msgstr "ongeldig percentage gereserveerde blokken - %s" >+msgstr "ongeldig percentage gereserveerde blokken: %s" > > # lib/prange.c:299 lib/prange.c:316 > #: misc/mke2fs.c:1031 > #, c-format > msgid "bad revision level - %s" >-msgstr "ongeldig versienummer - %s" >+msgstr "ongeldig versienummer: %s" > > #: misc/mke2fs.c:1044 > #, c-format > msgid "invalid inode size - %s" >-msgstr "ongeldige grootte van inode - %s" >+msgstr "ongeldige grootte van inode: %s" > > # lib/prange.c:299 lib/prange.c:316 > #: misc/mke2fs.c:1065 > #, c-format > msgid "bad num inodes - %s" >-msgstr "ongeldig aantal inodes - %s" >+msgstr "ongeldig aantal inodes: %s" > > #: misc/mke2fs.c:1123 misc/mke2fs.c:1588 > #, c-format >@@ -3646,8 +3650,8 @@ msgstr "Blokken van %d bytes zijn te gro > #, c-format > msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n" > msgstr "" >-"Waarschuwing: blokken van %d bytes zijn te groot voor dit systeem (max %d),\n" >-"maar er wordt geforceerd doorgegaan.\n" >+"Waarschuwing: blokken van %d bytes zijn te groot voor dit systeem,\n" >+"het maximum is %d -- maar 'mke2fs' wordt gedwongen uitgevoerd.\n" > > #: misc/mke2fs.c:1165 > msgid "filesystem" >@@ -3704,8 +3708,8 @@ msgid "" > "Filesystem too large. No more than 2**31-1 blocks\n" > "\t (8TB using a blocksize of 4k) are currently supported." > msgstr "" >-"Bestandssysteem is te groot. Niet meer dan 2**31-1 blokken\n" >-"\t (8TB bij een blokgrootte van 4K) worden momenteel ondersteund." >+"Bestandssysteem is te groot. Momenteel zijn niet meer dan\n" >+"2**31-1 blokken mogelijk (8TB bij een blokgrootte van 4K)." > > #: misc/mke2fs.c:1372 > #, c-format >@@ -3737,7 +3741,7 @@ msgstr "tijdens aanmaken van superblok" > #: misc/mke2fs.c:1472 > #, c-format > msgid "unknown os - %s" >-msgstr "onbekend besturingssysteem - %s" >+msgstr "onbekend besturingssysteem: %s" > > #: misc/mke2fs.c:1526 > msgid "while trying to allocate filesystem tables" >@@ -3786,7 +3790,7 @@ msgid "" > "\twhile trying to create journal" > msgstr "" > "\n" >-"\ttijdens aanmaken van journal" >+" tijdens aanmaken van journal" > > #: misc/mke2fs.c:1636 > #, c-format >@@ -3906,7 +3910,7 @@ msgid "" > "\twhile trying to open journal on %s\n" > msgstr "" > "\n" >-"\ttijdens openen van journal op %s\n" >+" tijdens openen van journal op %s\n" > > #: misc/tune2fs.c:404 > #, c-format >@@ -3928,7 +3932,7 @@ msgid "" > "\twhile trying to create journal file" > msgstr "" > "\n" >-"\ttijdens aanmaken van journal-inode" >+" tijdens aanmaken van journal-inode" > > #: misc/tune2fs.c:493 > #, c-format >@@ -3972,7 +3976,7 @@ msgstr "-O mag slechts één keer gegeve > #: misc/tune2fs.c:663 > #, c-format > msgid "bad reserved blocks count - %s" >-msgstr "onjuiste aantal gereserveerde blokken: %s" >+msgstr "onjuist aantal gereserveerde blokken: %s" > > #: misc/tune2fs.c:692 > #, c-format >@@ -4017,7 +4021,7 @@ msgstr "Het aantal gereserveerde blokken > #: misc/tune2fs.c:840 > #, c-format > msgid "Setting reserved blocks count to %lu\n" >-msgstr "Aantal gereserveerde blokken is op %lu gezet\n" >+msgstr "Het aantal gereserveerde blokken is op %lu gezet\n" > > #: misc/tune2fs.c:846 > msgid "" >@@ -4042,7 +4046,7 @@ msgid "" > "The filesystem already has sparse superblocks disabled.\n" > msgstr "" > "\n" >-"Het bestandssysteem is al niet zuinig met superblokken.\n" >+"Het bestandssysteem gebruikt al het normale aantal superblokken.\n" > > #: misc/tune2fs.c:868 > #, c-format >@@ -4096,7 +4100,7 @@ msgstr "%s is het hele apparaat, niet sl > > #: misc/util.c:158 > msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n" >-msgstr "'mke2fs' wordt geforceerd uitgevoerd, hopend dat /etc/mtab onjuist is.\n" >+msgstr "'mke2fs' wordt gedwongen uitgevoerd. Hoop dat /etc/mtab onjuist is.\n" > > #: misc/util.c:163 > #, c-format >@@ -4105,7 +4109,7 @@ msgstr "zal hier geen %s maken!\n" > > #: misc/util.c:170 > msgid "mke2fs forced anyway.\n" >-msgstr "'mke2fs' wordt geforceerd uitgevoerd.\n" >+msgstr "'mke2fs' wordt gedwongen uitgevoerd.\n" > > #: misc/util.c:186 > msgid "Couldn't allocate memory to parse journal options!\n" >@@ -4155,8 +4159,8 @@ msgid "" > "between 1024 and 102400 blocks. Aborting.\n" > msgstr "" > "\n" >-"De gevraagde journal-afmeting is %d blokken; deze dient\n" >-"tussen de 1024 and 102400 blokken te liggen.\n" >+"De gevraagde journal-afmeting is %d blokken; maar deze dient\n" >+"tussen de 1024 and 102400 blokken te liggen. Gestopt.\n" > > #: misc/util.c:270 > msgid "" >@@ -4226,12 +4230,12 @@ msgstr "Verplaatsen van inodetabel" > > #: resize/main.c:76 > msgid "Unknown pass?!?" >-msgstr "Onbekende doorloop?!?" >+msgstr "Onbekende stap?!?" > > #: resize/main.c:79 > #, c-format > msgid "Begin pass %d (max = %lu)\n" >-msgstr "Begin van doorloop %d (max = %lu)\n" >+msgstr "Begin van stap %d (max = %lu)\n" > > #: resize/main.c:200 > #, c-format >@@ -4306,4 +4310,4 @@ msgstr "blokken voor metagegevens" > #: resize/resize2fs.c:1528 > #, c-format > msgid "Should never happen: resize inode corrupt!\n" >-msgstr "Zou nooit mogen gebeuren: de resize-inode is beschadigd!\n" >+msgstr "Zou nooit mogen gebeuren: de 'resize'-inode is beschadigd!\n" >Index: e2fsprogs-1.39/po/vi.po >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/po/vi.po 2006-09-18 17:42:57.000000000 +0200 >@@ -0,0 +1,4365 @@ >+# Vietnamese translation for e2fsprogs. >+# Copyright © 2006 Free Software Foundation, Inc. >+# Clytie Siddall <clytie@riverland.net.au>, 2006. >+# >+#. 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, >+#. there is an @-expansion, where strings like "@i" are expanded to >+#. "inode", and so on. In order to make it easier for translators, the >+#. e2fsprogs po template file has been enhanced with comments that show >+#. the @-expansion, for the strings in the problem.c file. >+#. >+#. Translators are free to use the @-expansion facility if they so >+#. choose, by providing translations for strings in e2fsck/message.c. >+#. These translation can completely replace an expansion; for example, >+#. if "bblock" (which indicated that "@b" would be expanded to "block") >+#. is translated as "ddatenverlust", then "@d" will be expanded to >+#. "datenverlust". Alternatively, translators can simply not use the >+#. @-expansion facility at all. >+#. >+#. The second expansion which is done for e2fsck's problem.c messages is >+#. a dynamic %-expansion, which expands %i as an inode number, and so >+#. on. A table of these expansions can be found below. Note that >+#. %-expressions that begin with "%D" and "%I" are two-character >+#. expansions; so for example, "%Iu" expands to the inode's user id >+#. ownership field (inode->i_uid). >+#. >+#. %b <blk> block number >+#. %B <blkcount> integer >+#. %c <blk2> block number >+#. %Di <dirent> -> ino inode number >+#. %Dn <dirent> -> name string >+#. %Dr <dirent> -> rec_len >+#. %Dl <dirent> -> name_len >+#. %Dt <dirent> -> filetype >+#. %d <dir> inode number >+#. %g <group> integer >+#. %i <ino> inode number >+#. %Is <inode> -> i_size >+#. %IS <inode> -> i_extra_isize >+#. %Ib <inode> -> i_blocks >+#. %Il <inode> -> i_links_count >+#. %Im <inode> -> i_mode >+#. %IM <inode> -> i_mtime >+#. %IF <inode> -> i_faddr >+#. %If <inode> -> i_file_acl >+#. %Id <inode> -> i_dir_acl >+#. %Iu <inode> -> i_uid >+#. %Ig <inode> -> i_gid >+#. %j <ino2> inode number >+#. %m <com_err error message> >+#. %N <num> >+#. %p ext2fs_get_pathname of directory <ino> >+#. %P ext2fs_get_pathname of <dirent>->ino with <ino2> as >+#. the containing directory. (If dirent is NULL >+#. then return the pathname of directory <ino2>) >+#. %q ext2fs_get_pathname of directory <dir> >+#. %Q ext2fs_get_pathname of directory <ino> with <dir> as >+#. the containing directory. >+#. %s <str> miscellaneous string >+#. %S backup superblock >+#. %X <num> hexadecimal format >+#. >+msgid "" >+msgstr "" >+"Project-Id-Version: e2fsprogs 1.39-b2.vi.po\n" >+"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n" >+"POT-Creation-Date: 2006-03-29 15:30-0500\n" >+"PO-Revision-Date: 2006-06-03 16:48+0930\n" >+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" >+"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n" >+"MIME-Version: 1.0\n" >+"Content-Type: text/plain; charset=utf-8\n" >+"Content-Transfer-Encoding: 8bit\n" >+"Plural-Forms: nplurals=1; plural=0\n" >+"X-Generator: LocFactoryEditor 1.6b36\n" >+ >+#: e2fsck/badblocks.c:22 misc/mke2fs.c:154 >+#, c-format >+msgid "Bad block %u out of range; ignored.\n" >+msgstr "Khá»i há»ng %u á» ngoại phạm vá» nên bá» bá» qua.\n" >+ >+#: e2fsck/badblocks.c:45 >+msgid "while sanity checking the bad blocks inode" >+msgstr "trong khi kiá»m tra sá»± Äúng má»±c nút inode khá»i há»ng" >+ >+#: e2fsck/badblocks.c:57 >+msgid "while reading the bad blocks inode" >+msgstr "trong khi Äá»c nút inode khá»i há»ng" >+ >+#: e2fsck/badblocks.c:71 e2fsck/iscan.c:112 e2fsck/scantest.c:109 >+#: e2fsck/unix.c:950 e2fsck/unix.c:986 misc/badblocks.c:1005 >+#: misc/badblocks.c:1013 misc/badblocks.c:1027 misc/badblocks.c:1039 >+#: misc/dumpe2fs.c:369 misc/e2image.c:567 misc/e2image.c:660 >+#: misc/e2image.c:676 misc/mke2fs.c:170 misc/tune2fs.c:776 resize/main.c:243 >+#, c-format >+msgid "while trying to open %s" >+msgstr "trong khi cá» gắng má» %s" >+ >+#: e2fsck/badblocks.c:82 >+#, c-format >+msgid "while trying popen '%s'" >+msgstr "trong khi cá» gắng má» popen « %s »" >+ >+#: e2fsck/badblocks.c:93 misc/mke2fs.c:177 >+msgid "while reading in list of bad blocks from file" >+msgstr "trong khi Äá»c và o danh sách các khá»i há»ng từ táºp tin" >+ >+#: e2fsck/badblocks.c:103 >+msgid "while updating bad block inode" >+msgstr "trong khi cáºp nháºt nút inode khá»i há»ng" >+ >+#: e2fsck/badblocks.c:129 >+#, c-format >+msgid "Warning: illegal block %u found in bad block inode. Cleared.\n" >+msgstr "Cảnh báo : tìm thấy khá»i cấm %u trong nút inode khá»i há»ng nên bá» xoá.\n" >+ >+#: e2fsck/ehandler.c:53 >+#, c-format >+msgid "Error reading block %lu (%s) while %s. " >+msgstr "Gặp lá»i khi Äá»c khá»i %lu (%s) trong khi %s. " >+ >+#: e2fsck/ehandler.c:56 >+#, c-format >+msgid "Error reading block %lu (%s). " >+msgstr "Gặp lá»i khi Äá»c khá»i %lu (%s). " >+ >+#: e2fsck/ehandler.c:59 e2fsck/ehandler.c:106 >+msgid "Ignore error" >+msgstr "Bá» qua lá»i" >+ >+#: e2fsck/ehandler.c:60 >+msgid "Force rewrite" >+msgstr "Buá»c ghi lại" >+ >+#: e2fsck/ehandler.c:100 >+#, c-format >+msgid "Error writing block %lu (%s) while %s. " >+msgstr "GÄp lá»i khi ghi khá»i %lu (%s) trong khi %s. " >+ >+#: e2fsck/ehandler.c:103 >+#, c-format >+msgid "Error writing block %lu (%s). " >+msgstr "Gặp lá»i khi ghi khá»i %lu (%s). " >+ >+#: e2fsck/emptydir.c:56 >+msgid "empty dirblocks" >+msgstr "khá»i thÆ° mục rá»ng" >+ >+#: e2fsck/emptydir.c:61 >+msgid "empty dir map" >+msgstr "sÆ¡ Äá» thÆ° mục rá»ng" >+ >+#: e2fsck/emptydir.c:97 >+#, c-format >+msgid "Empty directory block %u (#%d) in inode %d\n" >+msgstr "Khá»i thÆ° mục rá»ng %u (#%d) trong nút inode %d\n" >+ >+#: e2fsck/extend.c:21 >+#, c-format >+msgid "%s: %s filename nblocks blocksize\n" >+msgstr "%s: %s tên táºp tin sá» khá»i cỡ khá»i\n" >+ >+#: e2fsck/extend.c:43 >+#, c-format >+msgid "Illegal number of blocks!\n" >+msgstr "Không cho phép sá» khá»i Äó !\n" >+ >+#: e2fsck/extend.c:49 >+#, c-format >+msgid "Couldn't allocate block buffer (size=%d)\n" >+msgstr "Không thá» cấp phát bá» Äá»m khá»i (cỡ=%d)\n" >+ >+#: e2fsck/flushb.c:34 >+#, c-format >+msgid "Usage: %s disk\n" >+msgstr "Cách sá» dụng: %s ÄÄ©a\n" >+ >+#: e2fsck/flushb.c:63 >+#, c-format >+msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n" >+msgstr "BLKFLSBUF ioctl không Äược há» trợ ! Không thá» xoá sạch các bá» Äá»m.\n" >+ >+#: e2fsck/iscan.c:46 >+#, c-format >+msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n" >+msgstr "Cách sá» dụng: %s [-F] [-I các_khá»i_Äá»m_inode] thiết_bá»\n" >+ >+#: e2fsck/iscan.c:83 e2fsck/unix.c:767 >+#, c-format >+msgid "while opening %s for flushing" >+msgstr "trong khi má» %s Äá» xoá sạch" >+ >+#: e2fsck/iscan.c:88 e2fsck/unix.c:773 resize/main.c:221 >+#, c-format >+msgid "while trying to flush %s" >+msgstr "trong khi cá» gắng xoá sạch %s" >+ >+#: e2fsck/iscan.c:121 e2fsck/scantest.c:116 misc/e2image.c:477 >+msgid "while opening inode scan" >+msgstr "trong khi má» viá»c quét nút inode" >+ >+#: e2fsck/iscan.c:129 misc/e2image.c:495 >+msgid "while getting next inode" >+msgstr "trong khi lấy nút inode kế tiếp" >+ >+#: e2fsck/iscan.c:138 >+#, c-format >+msgid "%d inodes scanned.\n" >+msgstr "%d nút inode Äã Äược quét.\n" >+ >+#: e2fsck/journal.c:463 >+msgid "reading journal superblock\n" >+msgstr "Äang Äá»c siêu khá»i nháºt ký\n" >+ >+#: e2fsck/journal.c:520 >+#, c-format >+msgid "%s: no valid journal superblock found\n" >+msgstr "%s: kôhng tìm thấy siêu khá»i nháºt ký hợp lá»\n" >+ >+#: e2fsck/journal.c:529 >+#, c-format >+msgid "%s: journal too short\n" >+msgstr "%s: nháºt ký quá ngắn\n" >+ >+#: e2fsck/journal.c:802 >+#, c-format >+msgid "%s: recovering journal\n" >+msgstr "%s: Äang phục há»i nháºt ký\n" >+ >+#: e2fsck/journal.c:804 >+#, c-format >+msgid "%s: won't do journal recovery while read-only\n" >+msgstr "%s: sẽ không phục há»i nháºt ký trong khi có trạng thái chá» Äá»c\n" >+ >+#: e2fsck/journal.c:825 >+#, c-format >+msgid "while trying to re-open %s" >+msgstr "trong khi cá» gắng má» lại %s" >+ >+#: e2fsck/message.c:108 >+msgid "aextended attribute" >+msgstr "athuá»c tÃnh Äã má» rá»ng" >+ >+#: e2fsck/message.c:109 >+msgid "Aerror allocating" >+msgstr "Acấp phát lá»i" >+ >+#: e2fsck/message.c:110 >+msgid "bblock" >+msgstr "bkhá»i" >+ >+#: e2fsck/message.c:111 >+msgid "Bbitmap" >+msgstr "BsÆ¡ Äá» bit" >+ >+#: e2fsck/message.c:112 >+msgid "ccompress" >+msgstr "cnén" >+ >+#: e2fsck/message.c:113 >+msgid "Cconflicts with some other fs @b" >+msgstr "Cxung Äá»t vá»i há» thá»ng táºp tin khác @b" >+ >+#: e2fsck/message.c:114 >+msgid "iinode" >+msgstr "iinode" >+ >+#: e2fsck/message.c:115 >+msgid "Iillegal" >+msgstr "Icấm" >+ >+#: e2fsck/message.c:116 >+msgid "jjournal" >+msgstr "jnháºt ký" >+ >+#: e2fsck/message.c:117 >+msgid "Ddeleted" >+msgstr "DÄã xoá bá»" >+ >+#: e2fsck/message.c:118 >+msgid "ddirectory" >+msgstr "dthÆ° mục" >+ >+#: e2fsck/message.c:119 >+msgid "eentry" >+msgstr "emục nháºp" >+ >+#: e2fsck/message.c:120 >+msgid "E@e '%Dn' in %p (%i)" >+msgstr "E@e '%Dn' trong %p (%i)" >+ >+#: e2fsck/message.c:121 >+msgid "ffilesystem" >+msgstr "fhá» thá»ng táºp tin" >+ >+#: e2fsck/message.c:122 >+msgid "Ffor @i %i (%Q) is" >+msgstr "Fcho @i %i (%Q) là " >+ >+#: e2fsck/message.c:123 >+msgid "ggroup" >+msgstr "gnhóm" >+ >+#: e2fsck/message.c:124 >+msgid "hHTREE @d @i" >+msgstr "hHCÃY @d @i" >+ >+#: e2fsck/message.c:125 >+msgid "llost+found" >+msgstr "lmất+tìm" >+ >+#: e2fsck/message.c:126 >+msgid "Lis a link" >+msgstr "L là liên kết" >+ >+#: e2fsck/message.c:127 >+msgid "mmultiply-claimed" >+msgstr "mÄã tuyên bá» nhiá»u lần" >+ >+#: e2fsck/message.c:128 >+msgid "ninvalid" >+msgstr "nkhông hợp lá»" >+ >+#: e2fsck/message.c:129 >+msgid "oorphaned" >+msgstr "ocôi cút" >+ >+#: e2fsck/message.c:130 >+msgid "pproblem in" >+msgstr "pvấn Äá» trong" >+ >+#: e2fsck/message.c:131 >+msgid "rroot @i" >+msgstr "rgá»c @i" >+ >+#: e2fsck/message.c:132 >+msgid "sshould be" >+msgstr "snên là " >+ >+#: e2fsck/message.c:133 >+msgid "Ssuper@b" >+msgstr "Ssiêu @b" >+ >+#: e2fsck/message.c:134 >+msgid "uunattached" >+msgstr "uchÆ°a gắn ná»i" >+ >+#: e2fsck/message.c:135 >+msgid "vdevice" >+msgstr "vthiết bá»" >+ >+#: e2fsck/message.c:136 >+msgid "zzero-length" >+msgstr "zdà i bằng không" >+ >+#: e2fsck/message.c:147 >+msgid "<The NULL inode>" >+msgstr "<inode Rá»NG>" >+ >+#: e2fsck/message.c:148 >+msgid "<The bad blocks inode>" >+msgstr "<inode khá»i há»ng>" >+ >+#: e2fsck/message.c:150 >+msgid "<The ACL index inode>" >+msgstr "<inode chá» mục ACL>" >+ >+#: e2fsck/message.c:151 >+msgid "<The ACL data inode>" >+msgstr "<inode dữ liá»u ACL>" >+ >+#: e2fsck/message.c:152 >+msgid "<The boot loader inode>" >+msgstr "<inode bá» tải khá»i Äá»ng>" >+ >+#: e2fsck/message.c:153 >+msgid "<The undelete directory inode>" >+msgstr "<inode hủy xoá bá» thÆ° mục>" >+ >+#: e2fsck/message.c:154 >+msgid "<The group descriptor inode>" >+msgstr "<inode mô tả nhóm>" >+ >+#: e2fsck/message.c:155 >+msgid "<The journal inode>" >+msgstr "<inode nháºt ký>" >+ >+#: e2fsck/message.c:156 >+msgid "<Reserved inode 9>" >+msgstr "<inode Äược dà nh riêng 9>" >+ >+#: e2fsck/message.c:157 >+msgid "<Reserved inode 10>" >+msgstr "<inode Äược dà nh riêng 10>" >+ >+#: e2fsck/pass1b.c:209 >+msgid "multiply claimed inode map" >+msgstr "sÆ¡ Äá» nút inode Äã tuyên bá» nhiá»u lần" >+ >+#: e2fsck/pass1b.c:558 e2fsck/pass1b.c:695 >+#, c-format >+msgid "internal error; can't find dup_blk for %u\n" >+msgstr "lá»i ná»i bá» : không tìm thấy khá»i trùng dup_blk cho %u\n" >+ >+#: e2fsck/pass1b.c:738 >+msgid "returned from clone_file_block" >+msgstr "Äược trả gá»i từ khá»i táºp tin nhái theo clone_file_block" >+ >+#: e2fsck/pass1.c:430 >+msgid "in-use inode map" >+msgstr "sÆ¡ Äá» nút inode Äang Äược dùng" >+ >+#: e2fsck/pass1.c:439 >+msgid "directory inode map" >+msgstr "sÆ¡ Äá» nút inode thÆ° mục" >+ >+#: e2fsck/pass1.c:447 >+msgid "regular file inode map" >+msgstr "sÆ¡ Äá» nút inode táºp tin chuẩn" >+ >+#: e2fsck/pass1.c:454 >+msgid "in-use block map" >+msgstr "sÆ¡ Äá» khá»i Äang Äược dùng" >+ >+#: e2fsck/pass1.c:505 >+msgid "doing inode scan" >+msgstr "Äang quét nút inode" >+ >+#: e2fsck/pass1.c:917 >+msgid "Pass 1" >+msgstr "Lần qua 1" >+ >+#: e2fsck/pass1.c:976 >+#, c-format >+msgid "reading indirect blocks of inode %u" >+msgstr "Äang Äá»c khá»i gián tiếp của nút inode %u" >+ >+#: e2fsck/pass1.c:1018 >+msgid "bad inode map" >+msgstr "sÆ¡ Äá» nút inode sai" >+ >+#: e2fsck/pass1.c:1040 >+msgid "inode in bad block map" >+msgstr "nút inode trong sÆ¡ Äá» khá»i há»ng" >+ >+#: e2fsck/pass1.c:1060 >+msgid "imagic inode map" >+msgstr "sÆ¡ Äá» nút inode ma thuáºt imagic" >+ >+#: e2fsck/pass1.c:1087 >+msgid "multiply claimed block map" >+msgstr "sÆ¡ Äá» khá»i Äã tuyên bá» nhiá»u lần" >+ >+#: e2fsck/pass1.c:1186 >+msgid "ext attr block map" >+msgstr "sÆ¡ Äá» khá»i ext attr" >+ >+#: e2fsck/pass1.c:1959 >+msgid "block bitmap" >+msgstr "sÆ¡ Äá» bit khá»i" >+ >+#: e2fsck/pass1.c:1963 >+msgid "inode bitmap" >+msgstr "sÆ¡ Äá» bit nút inode" >+ >+#: e2fsck/pass1.c:1967 >+msgid "inode table" >+msgstr "bảng nút inode" >+ >+#: e2fsck/pass2.c:287 >+msgid "Pass 2" >+msgstr "Lần qua 2" >+ >+#: e2fsck/pass3.c:79 >+msgid "inode done bitmap" >+msgstr "sÆ¡ Äá» bit nút inode hoà n tất" >+ >+#: e2fsck/pass3.c:90 >+msgid "Peak memory" >+msgstr "Bá» nhá» cao Äiá»m" >+ >+#: e2fsck/pass3.c:143 >+msgid "Pass 3" >+msgstr "Lần qua 3" >+ >+#: e2fsck/pass3.c:334 >+msgid "inode loop detection bitmap" >+msgstr "sÆ¡ Äá» bit phát hiá»n vòng lặp nút inode" >+ >+#: e2fsck/pass4.c:174 >+msgid "Pass 4" >+msgstr "Lần qua 4" >+ >+#: e2fsck/pass5.c:70 >+msgid "Pass 5" >+msgstr "Lần qua 5" >+ >+#: e2fsck/problem.c:50 >+msgid "(no prompt)" >+msgstr "(không có dấu nhắc)" >+ >+#: e2fsck/problem.c:51 >+msgid "Fix" >+msgstr "Sá»a" >+ >+#: e2fsck/problem.c:52 >+msgid "Clear" >+msgstr "Xoá" >+ >+#: e2fsck/problem.c:53 >+msgid "Relocate" >+msgstr "Äá»nh vá» lại" >+ >+#: e2fsck/problem.c:54 >+msgid "Allocate" >+msgstr "Cấp phát" >+ >+#: e2fsck/problem.c:55 >+msgid "Expand" >+msgstr "Bung" >+ >+#: e2fsck/problem.c:56 >+msgid "Connect to /lost+found" >+msgstr "Kết ná»i Äến /mất+tìm" >+ >+#: e2fsck/problem.c:57 >+msgid "Create" >+msgstr "Tạo" >+ >+#: e2fsck/problem.c:58 >+msgid "Salvage" >+msgstr "Cứu vá»t" >+ >+#: e2fsck/problem.c:59 >+msgid "Truncate" >+msgstr "Cắt ngắn" >+ >+#: e2fsck/problem.c:60 >+msgid "Clear inode" >+msgstr "Xoá nút inode" >+ >+#: e2fsck/problem.c:61 >+msgid "Abort" >+msgstr "Hủy bá»" >+ >+#: e2fsck/problem.c:62 >+msgid "Split" >+msgstr "Chia ra" >+ >+#: e2fsck/problem.c:63 >+msgid "Continue" >+msgstr "Tiếp tục" >+ >+#: e2fsck/problem.c:64 >+msgid "Clone multiply-claimed blocks" >+msgstr "Nhái theo các khá»i Äã tuyên bá» nhiá»u lần" >+ >+#: e2fsck/problem.c:65 >+msgid "Delete file" >+msgstr "Xoá bá» táºp tin" >+ >+#: e2fsck/problem.c:66 >+msgid "Suppress messages" >+msgstr "Thu há»i thông Äiá»p" >+ >+#: e2fsck/problem.c:67 >+msgid "Unlink" >+msgstr "Bá» liên kết" >+ >+#: e2fsck/problem.c:68 >+msgid "Clear HTree index" >+msgstr "Xoá chá» mục HCây" >+ >+#: e2fsck/problem.c:69 >+msgid "Recreate" >+msgstr "Tạo lại" >+ >+#: e2fsck/problem.c:78 >+msgid "(NONE)" >+msgstr "(KHÃNG CÃ)" >+ >+#: e2fsck/problem.c:79 >+msgid "FIXED" >+msgstr "Äà SỬA" >+ >+#: e2fsck/problem.c:80 >+msgid "CLEARED" >+msgstr "Äà XOÃ" >+ >+#: e2fsck/problem.c:81 >+msgid "RELOCATED" >+msgstr "Äà Äá»NH Vá» LẠI" >+ >+#: e2fsck/problem.c:82 >+msgid "ALLOCATED" >+msgstr "Äà CẤP PHÃT" >+ >+#: e2fsck/problem.c:83 >+msgid "EXPANDED" >+msgstr "Äà Má» Rá»NG" >+ >+#: e2fsck/problem.c:84 >+msgid "RECONNECTED" >+msgstr "Äà KẾT Ná»I LẠI" >+ >+#: e2fsck/problem.c:85 >+msgid "CREATED" >+msgstr "Äà TẠO" >+ >+#: e2fsck/problem.c:86 >+msgid "SALVAGED" >+msgstr "Äà CỨU Vá»T" >+ >+#: e2fsck/problem.c:87 >+msgid "TRUNCATED" >+msgstr "Äà CẮT NGẮN" >+ >+#: e2fsck/problem.c:88 >+msgid "INODE CLEARED" >+msgstr "NÃT INODE Äà XOÃ" >+ >+#: e2fsck/problem.c:89 >+msgid "ABORTED" >+msgstr "Bá» HỦY Bá»" >+ >+#: e2fsck/problem.c:90 >+msgid "SPLIT" >+msgstr "Äà CHIA RA" >+ >+#: e2fsck/problem.c:91 >+msgid "CONTINUING" >+msgstr "ÄANG TIẾP TỤC" >+ >+#: e2fsck/problem.c:92 >+msgid "MULTIPLY-CLAIMED BLOCKS CLONED" >+msgstr "CÃC KHá»I Äà TUYÃN Bá» NHIá»U LẦN Äà ÄƯỢC NHÃI THEO" >+ >+#: e2fsck/problem.c:93 >+msgid "FILE DELETED" >+msgstr "TẬP TIN Äà ÄƯỢC XÃA Bá»" >+ >+#: e2fsck/problem.c:94 >+msgid "SUPPRESSED" >+msgstr "Äà THU Há»I" >+ >+#: e2fsck/problem.c:95 >+msgid "UNLINKED" >+msgstr "Äà Bá» LIÃN KẾT" >+ >+#: e2fsck/problem.c:96 >+msgid "HTREE INDEX CLEARED" >+msgstr "CHá» MỤC HCÃY Äà ÄƯỢC XOÃ" >+ >+#: e2fsck/problem.c:97 >+msgid "WILL RECREATE" >+msgstr "SẼ TẠO LẠI" >+ >+#. @-expanded: block bitmap for group %g is not in group. (block %b)\n >+#: e2fsck/problem.c:106 >+msgid "@b @B for @g %g is not in @g. (@b %b)\n" >+msgstr "sÆ¡ Äá» khá»i cho nhóm %g không phải nằm trong nhóm. (khá»i %b)\n" >+ >+#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n >+#: e2fsck/problem.c:110 >+msgid "@i @B for @g %g is not in @g. (@b %b)\n" >+msgstr "sÆ¡ Äá» nút inode cho nhóm %g không phải nằm trong nhóm. (khá»i %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:115 >+msgid "" >+"@i table for @g %g is not in @g. (@b %b)\n" >+"WARNING: SEVERE DATA LOSS POSSIBLE.\n" >+msgstr "" >+"bảng nút inode cho nhóm %g không phải nằm trong nhóm. (khá»i %b)\n" >+"CẢNH BÃO : Cà THá» MẤT Dá»® LIá»U NHIá»U.\n" >+ >+#. @-expanded: \n >+#. @-expanded: The superblock could not be read or does not describe a correct ext2\n >+#. @-expanded: filesystem. If the device is valid and it really contains an ext2\n >+#. @-expanded: filesystem (and not swap or ufs or something else), then the superblock\n >+#. @-expanded: is corrupt, and you might try running e2fsck with an alternate superblock:\n >+#. @-expanded: e2fsck -b %S <device>\n >+#. @-expanded: \n >+#: e2fsck/problem.c:121 >+#, c-format >+msgid "" >+"\n" >+"The @S could not be read or does not describe a correct ext2\n" >+"@f. If the @v is valid and it really contains an ext2\n" >+"@f (and not swap or ufs or something else), then the @S\n" >+"is corrupt, and you might try running e2fsck with an alternate @S:\n" >+" e2fsck -b %S <@v>\n" >+"\n" >+msgstr "" >+"\n" >+"Siêu khá»i không thá» Äược Äá»c, hoặc không diá» n tả má»t há» thá»ng\n" >+"táºp tin kiá»u ext2 Äúng. Nếu thiết bá» là hợp lá» và tháºt sá»± chứa\n" >+"má»t há» thá»ng táºp tin kiá»u ext2 (không phải kiá»u trao Äá»i hay UFS\n" >+"hay kiá»u khác), thì siêu khá»i bá» há»ng, và Äá» nghá» bạn thá» chạy\n" >+"e2fsck vá»i má»t siêu khá»i xen kẽ:\n" >+" e2fsck -b %S <thiết_bá»>\n" >+"\n" >+ >+#. @-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:130 >+msgid "" >+"The @f size (according to the @S) is %b @bs\n" >+"The physical size of the @v is %c @bs\n" >+"Either the @S or the partition table is likely to be corrupt!\n" >+msgstr "" >+"KÃch cỡ của há» thá»ng táºp tin (tùy theo siêu khá»i) là %b khá»i.\n" >+"KÃch cỡ váºt lý của thiết bá» là %c khá»i.\n" >+"Hoặc siêu khá»i hoặc bảng phân vùng rất có thá» bá» há»ng !\n" >+ >+#. @-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:137 >+msgid "" >+"@S @b_size = %b, fragsize = %c.\n" >+"This version of e2fsck does not support fragment sizes different\n" >+"from the @b size.\n" >+msgstr "" >+"KÃch cỡ của siêu khá»i là %b còn kÃch cỡ của Äoạn là %c.\n" >+"Phiên bản e2fsck nà y không há» trợ kÃch cỡ Äoạn khác\n" >+"vá»i kÃch cỡ khá»i.\n" >+ >+#. @-expanded: superblock blocks_per_group = %b, should have been %c\n >+#: e2fsck/problem.c:144 >+msgid "@S @bs_per_group = %b, should have been %c\n" >+msgstr "Sá» khá»i trong má»i nhóm siêu khá»i là %b, còn nên là %c.\n" >+ >+#. @-expanded: superblock first_data_block = %b, should have been %c\n >+#: e2fsck/problem.c:149 >+msgid "@S first_data_@b = %b, should have been %c\n" >+msgstr "Khá»i dữ liá»u thứ nhất siêu khá»i là %b, còn nên là %c.\n" >+ >+#. @-expanded: filesystem did not have a UUID; generating one.\n >+#. @-expanded: \n >+#: e2fsck/problem.c:154 >+msgid "" >+"@f did not have a UUID; generating one.\n" >+"\n" >+msgstr "" >+"Há» thá»ng táºp tin không có UUID nên Äang tạo ra nó.\n" >+"\n" >+ >+#: e2fsck/problem.c:159 >+#, 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" >+"running e2fsck with the '-b %S' option first. The problem\n" >+"may lie only with the primary block group descriptors, and\n" >+"the backup block group descriptors may be OK.\n" >+"\n" >+msgstr "" >+"Ghi chú : nếu và i khá»i nút inode hay khá»i sÆ¡ Äá» bit khá»i\n" >+"hay phần của bảng inode cần thiết Äược Äá»nh vá» lại,\n" >+"có lẽ bạn muá»n thá» chạy e2fsck vá»i tùy chá»n « -b %S »\n" >+"trÆ°á»c tiên. Vấn Äá» có thá» nằm chá» vá»i các mô tả nhóm\n" >+"khá»i chÃnh, thì các mô tả nhóm khá»i dá»± trữ có thá» là Äúng.\n" >+"\n" >+ >+#. @-expanded: Corruption found in superblock. (%s = %N).\n >+#: e2fsck/problem.c:168 >+msgid "Corruption found in @S. (%s = %N).\n" >+msgstr "Tìm Äiá»u bá» há»ng trong siêu khá»i. (%s = %N).\n" >+ >+#. @-expanded: Error determining size of the physical device: %m\n >+#: e2fsck/problem.c:173 >+#, c-format >+msgid "Error determining size of the physical @v: %m\n" >+msgstr "Gặp lá»i khi xác Äá»nh kÃch cỡ của thiết bá» váºt lý: %m\n" >+ >+#. @-expanded: inode count in superblock is %i, should be %j.\n >+#: e2fsck/problem.c:178 >+msgid "@i count in @S is %i, @s %j.\n" >+msgstr "Sá» Äếm nút inode trong siêu khá»i là %i, còn nên là %j.\n" >+ >+#: e2fsck/problem.c:182 >+msgid "The Hurd does not support the filetype feature.\n" >+msgstr "Hurd không há» trợ tÃnh nÄng kiá»u táºp tin.\n" >+ >+#. @-expanded: superblock has an invalid ext3 journal (inode %i).\n >+#: e2fsck/problem.c:187 >+#, c-format >+msgid "@S has an @n ext3 @j (@i %i).\n" >+msgstr "Siêu khá»i có nháºt ký ext3 không hợp lá» (inode %i).\n" >+ >+#. @-expanded: External journal has multiple filesystem users (unsupported).\n >+#: e2fsck/problem.c:192 >+msgid "External @j has multiple @f users (unsupported).\n" >+msgstr "Nháºt ký bên ngoà i có nhiá»u ngÆ°á»i dùng há» thá»ng táºp tin (không Äược há» trợ).\n" >+ >+#. @-expanded: Can't find external journal\n >+#: e2fsck/problem.c:197 >+msgid "Can't find external @j\n" >+msgstr "Không tìm thấy nháºt ký bên ngoà i\n" >+ >+#. @-expanded: External journal has bad superblock\n >+#: e2fsck/problem.c:202 >+msgid "External @j has bad @S\n" >+msgstr "Nháºt ký bên ngoà i có siêu khá»i sai\n" >+ >+#. @-expanded: External journal does not support this filesystem\n >+#: e2fsck/problem.c:207 >+msgid "External @j does not support this @f\n" >+msgstr "Nháºt ký bên ngoà i không há» trợ há» thá»ng táºp tin nà y\n" >+ >+#. @-expanded: Ext3 journal superblock is unknown type %N (unsupported).\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:212 >+msgid "" >+"Ext3 @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 also possible the @j @S is corrupt.\n" >+msgstr "" >+"Siêu khá»i nháºt ký ext3 có kiá»u không rõ %N (không Äược há» trợ).\n" >+"Rất có thá» là bản sao e2fsck của bạn là cÅ© và /hay không há» trợ\n" >+"dạng thức nháºt ký nà y.\n" >+"CÅ©ng có thá» là siêu khá»i nháºt ký bá» há»ng.\n" >+ >+#. @-expanded: Ext3 journal superblock is corrupt.\n >+#: e2fsck/problem.c:220 >+msgid "Ext3 @j @S is corrupt.\n" >+msgstr "Siêu khá»i nháºt ký ext3 bá» há»ng.\n" >+ >+#. @-expanded: superblock doesn't have has_journal flag, but has ext3 journal %s.\n >+#: e2fsck/problem.c:225 >+#, c-format >+msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n" >+msgstr "Siêu khá»i không có cỠ« có nháºt ký » (has_journal), còn có nháºt ký ext3 %s.\n" >+ >+#. @-expanded: superblock has ext3 needs_recovery flag set, but no journal.\n >+#: e2fsck/problem.c:230 >+msgid "@S has ext3 needs_recovery flag set, but no @j.\n" >+msgstr "" >+"Siêu khá»i có cá» cần thiết phục há»i (needs_recovery) Äược Äặt,\n" >+"còn không có nháºt ký.\n" >+ >+#. @-expanded: ext3 recovery flag is clear, but journal has data.\n >+#: e2fsck/problem.c:235 >+msgid "ext3 recovery flag is clear, but @j has data.\n" >+msgstr "Cá» phục há»i ext3 là rõ, còn nháºt ký có dữ liá»u.\n" >+ >+#. @-expanded: Clear journal >+#: e2fsck/problem.c:240 >+msgid "Clear @j" >+msgstr "Xoá nháºt ký" >+ >+#. @-expanded: Run journal anyway >+#: e2fsck/problem.c:245 >+msgid "Run @j anyway" >+msgstr "Vẫn còn chạy nháºt ký" >+ >+#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n >+#: e2fsck/problem.c:250 >+msgid "Recovery flag not set in backup @S, so running @j anyway.\n" >+msgstr "ChÆ°a Äặt cá» phục há»i trong siêu khá»i dá»± trữ nên vẫn chạy nháºt ký.\n" >+ >+#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n >+#: e2fsck/problem.c:255 >+msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n" >+msgstr "%s nút inode côi cút %i (uid=%Iu, gid=%Ig, chế Äá»=%Im, cỡ=%Is)\n" >+ >+#. @-expanded: illegal block #%B (%b) found in orphaned inode %i.\n >+#: e2fsck/problem.c:260 >+msgid "@I @b #%B (%b) found in @o @i %i.\n" >+msgstr "Tìm thấy khá»i cấm #%B (%b) trong nút inode côi cút %i.\n" >+ >+#. @-expanded: Already cleared block #%B (%b) found in orphaned inode %i.\n >+#: e2fsck/problem.c:265 >+msgid "Already cleared @b #%B (%b) found in @o @i %i.\n" >+msgstr "Äã xoá khá»i #%B (%b) Äược tìm trong nút inode côi cút %i.\n" >+ >+#. @-expanded: illegal orphaned inode %i in superblock.\n >+#: e2fsck/problem.c:270 >+#, c-format >+msgid "@I @o @i %i in @S.\n" >+msgstr "Có nút inode côi cút cấm %i trong siêu khá»i.\n" >+ >+#. @-expanded: illegal inode %i in orphaned inode list.\n >+#: e2fsck/problem.c:275 >+#, c-format >+msgid "@I @i %i in @o @i list.\n" >+msgstr "Có nút inode cấm %i trong danh sách inode côi cút.\n" >+ >+#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem. >+#: e2fsck/problem.c:280 e2fsck/problem.c:608 >+msgid "@f has feature flag(s) set, but is a revision 0 @f. " >+msgstr "Há» thá»ng táºp tin Äã Äặt (các) cá» tÃnh nÄng, còn là há» thá»ng bản sá»a Äá»i 0. " >+ >+#. @-expanded: Ext3 journal superblock has an unknown read-only feature flag set.\n >+#: e2fsck/problem.c:285 >+msgid "Ext3 @j @S has an unknown read-only feature flag set.\n" >+msgstr "Siêu khá»i nháºt ký ext3 Äã Äặt má»t cá» tÃnh nÄng chá» Äá»c không rõ.\n" >+ >+#. @-expanded: Ext3 journal superblock has an unknown incompatible feature flag set.\n >+#: e2fsck/problem.c:290 >+msgid "Ext3 @j @S has an unknown incompatible feature flag set.\n" >+msgstr "Siêu khá»i nháºt ký ext3 Äã Äặt má»t cá» tÃnh nÄng không tÆ°Æ¡ng thÃch không rõ.\n" >+ >+#. @-expanded: journal version not supported by this e2fsck.\n >+#: e2fsck/problem.c:295 >+msgid "@j version not supported by this e2fsck.\n" >+msgstr "Phiên bản nháºt ký không Äược há» trợ bá»i e2fsck nà y.\n" >+ >+#. @-expanded: Moving journal from /%s to hidden inode.\n >+#. @-expanded: \n >+#: e2fsck/problem.c:300 >+#, c-format >+msgid "" >+"Moving @j from /%s to hidden @i.\n" >+"\n" >+msgstr "" >+"Äang di chuyá»n nháºt ký từ </%s> sang nút inode bỠẩn.\n" >+"\n" >+ >+#. @-expanded: Error moving journal: %m\n >+#. @-expanded: \n >+#: e2fsck/problem.c:305 >+#, c-format >+msgid "" >+"Error moving @j: %m\n" >+"\n" >+msgstr "" >+"Gặp lá»i khi di chuyá»n nháºt ký: %m\n" >+"\n" >+ >+#. @-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:310 >+msgid "" >+"Found @n V2 @j @S fields (from V1 @j).\n" >+"Clearing fields beyond the V1 @j @S...\n" >+"\n" >+msgstr "" >+"Tìm thấy trÆ°á»ng siêu khá»i nháºt ký V2 (từ nháºt ký V1).\n" >+"Äang xoá các trÆ°á»ng nằm á» bên kia siêu khá»i nháºt ký V1...\n" >+"\n" >+ >+#. @-expanded: Backing up journal inode block information.\n >+#. @-expanded: \n >+#: e2fsck/problem.c:316 >+msgid "" >+"Backing up @j @i @b information.\n" >+"\n" >+msgstr "" >+"Äang sao lÆ°u thông tin khá»i nút inode nháºt ký.\n" >+"\n" >+ >+#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n >+#. @-expanded: is %N; should be zero. >+#: e2fsck/problem.c:321 >+msgid "" >+"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n" >+"is %N; @s zero. " >+msgstr "" >+"Há» thá»ng táºp tin chÆ°a hiá»u lá»±c khả nÄng thay Äá»i kÃch cỡ\n" >+"của nút inode (resize_inode), nhÆ°ng sá» khá»i GDT Äã dà nh\n" >+"riêng s (s_reserved_gdt_blocks) là %N, còn nên là sá» không." >+ >+#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero. >+#: e2fsck/problem.c:327 >+msgid "Resize_@i not enabled, but the resize @i is non-zero. " >+msgstr "" >+"ChÆ°a hiá»u lá»±c khả nÄng thay Äá»i kÃch cỡ của nút inode (Resize_inode)\n" >+"còn nút inode thay Äá»i kÃch cỡ khác không. " >+ >+#. @-expanded: Resize inode not valid. >+#: e2fsck/problem.c:332 >+msgid "Resize @i not valid. " >+msgstr "Nút inode thay Äá»i kÃch cỡ không hợp lá». " >+ >+#. @-expanded: superblock last mount time is in the future. >+#: e2fsck/problem.c:337 >+msgid "@S last mount time is in the future. " >+msgstr "Giá» Äã gắn kết siêu khá»i cuá»i cùng nằm trong tÆ°Æ¡ng lai. " >+ >+#. @-expanded: superblock last write time is in the future. >+#: e2fsck/problem.c:342 >+msgid "@S last write time is in the future. " >+msgstr "Giá» Äã ghi siêu khá»i cuá»i cùng nằm trong tÆ°Æ¡ng lai. " >+ >+#. @-expanded: superblock hint for external superblock should be %X. >+#: e2fsck/problem.c:346 >+#, c-format >+msgid "@S hint for external superblock @s %X. " >+msgstr "Mẹo siêu khá»i cho siêu khá»i bên ngoà i nên là %X. " >+ >+#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n >+#: e2fsck/problem.c:353 >+msgid "Pass 1: Checking @is, @bs, and sizes\n" >+msgstr "Lần qua 1: Äang kiá»m tra các nút inode, khá»i và kÃch cỡ\n" >+ >+#. @-expanded: root inode is not a directory. >+#: e2fsck/problem.c:357 >+msgid "@r is not a @d. " >+msgstr "Nút inode gá»c không phải là thÆ° mục. " >+ >+#. @-expanded: root inode has dtime set (probably due to old mke2fs). >+#: e2fsck/problem.c:362 >+msgid "@r has dtime set (probably due to old mke2fs). " >+msgstr "Nút inode gá»c Äã Äặt dtime (rất có thá» do mkd2fs cÅ©). " >+ >+#. @-expanded: Reserved inode %i (%Q) has invalid mode. >+#: e2fsck/problem.c:367 >+msgid "Reserved @i %i (%Q) has @n mode. " >+msgstr "Nút inode Äã dà nh riêng %i (%Q) có chế Äá» không hợp lá». " >+ >+#. @-expanded: deleted inode %i has zero dtime. >+#: e2fsck/problem.c:372 >+#, c-format >+msgid "@D @i %i has zero dtime. " >+msgstr "Nút inode Äã xoá bá» %i có dtime bằng không. " >+ >+#. @-expanded: inode %i is in use, but has dtime set. >+#: e2fsck/problem.c:377 >+#, c-format >+msgid "@i %i is in use, but has dtime set. " >+msgstr "Nút inode %i Äang Äược dùng, còn Äã Äặt dtime. " >+ >+#. @-expanded: inode %i is a zero-length directory. >+#: e2fsck/problem.c:382 >+#, c-format >+msgid "@i %i is a @z @d. " >+msgstr "Nút inode %i là thÆ° mục có Äá» dà i bằng không. " >+ >+#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n >+#: e2fsck/problem.c:387 >+msgid "@g %g's @b @B at %b @C.\n" >+msgstr "SÆ¡ Äá» bit khá»i của nhóm %g tại %b xung Äá»t vá»i khá»i há» thá»ng táºp tin khác.\n" >+ >+#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n >+#: e2fsck/problem.c:392 >+msgid "@g %g's @i @B at %b @C.\n" >+msgstr "" >+"SÆ¡ Äá» bit nút inode của nhóm %g tại %b xung Äá»t\n" >+"vá»i khá»i há» thá»ng táºp tin khác.\n" >+ >+#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n >+#: e2fsck/problem.c:397 >+msgid "@g %g's @i table at %b @C.\n" >+msgstr "Bảng nút inode của nhóm %g tại %b xung Äá»t vá»i khá»i há» thá»ng táºp tin khác.\n" >+ >+#. @-expanded: group %g's block bitmap (%b) is bad. >+#: e2fsck/problem.c:402 >+msgid "@g %g's @b @B (%b) is bad. " >+msgstr "SÆ¡ Äá» bit khá»i của nhóm %g (%b) là sai. " >+ >+#. @-expanded: group %g's inode bitmap (%b) is bad. >+#: e2fsck/problem.c:407 >+msgid "@g %g's @i @B (%b) is bad. " >+msgstr "SÆ¡ Äá» bit nút inode của nhóm %g (%b) là sai. " >+ >+#. @-expanded: inode %i, i_size is %Is, should be %N. >+#: e2fsck/problem.c:412 >+msgid "@i %i, i_size is %Is, @s %N. " >+msgstr "Nút inode %i, kÃch cỡ i_size là %Is, còn nên là %N. " >+ >+#. @-expanded: inode %i, i_blocks is %Ib, should be %N. >+#: e2fsck/problem.c:417 >+msgid "@i %i, i_@bs is %Ib, @s %N. " >+msgstr "Nút inode %i, khá»i i_blocks là %Ib, còn nên là %N. " >+ >+#. @-expanded: illegal block #%B (%b) in inode %i. >+#: e2fsck/problem.c:422 >+msgid "@I @b #%B (%b) in @i %i. " >+msgstr "Khá»i cấm sá» %B (%b) nằm trong nút inode %i. " >+ >+#. @-expanded: block #%B (%b) overlaps filesystem metadata in inode %i. >+#: e2fsck/problem.c:427 >+msgid "@b #%B (%b) overlaps @f metadata in @i %i. " >+msgstr "Khá»i sá» %B (%b) Äè lên siêu dữ liá»u há» thá»ng táºp tin trong nút inode %i. " >+ >+#. @-expanded: inode %i has illegal block(s). >+#: e2fsck/problem.c:432 >+#, c-format >+msgid "@i %i has illegal @b(s). " >+msgstr "Nút inode %i có khá»i cấm. " >+ >+#. @-expanded: Too many illegal blocks in inode %i.\n >+#: e2fsck/problem.c:437 >+#, c-format >+msgid "Too many illegal @bs in @i %i.\n" >+msgstr "Có quá nhiá»u khá»i cấm trong nút inode %i.\n" >+ >+#. @-expanded: illegal block #%B (%b) in bad block inode. >+#: e2fsck/problem.c:442 >+msgid "@I @b #%B (%b) in bad @b @i. " >+msgstr "Có khá»i cấm sá» %B (%b) trong nút inode khá»i há»ng. " >+ >+#. @-expanded: Bad block inode has illegal block(s). >+#: e2fsck/problem.c:447 >+msgid "Bad @b @i has illegal @b(s). " >+msgstr "Nút inode khá»i há»ng có khá»i cấm. " >+ >+#. @-expanded: Duplicate or bad block in use!\n >+#: e2fsck/problem.c:452 >+msgid "Duplicate or bad @b in use!\n" >+msgstr "Äang dùng khá»i trùng hay bá» há»ng !\n" >+ >+#. @-expanded: Bad block %b used as bad block inode indirect block. >+#: e2fsck/problem.c:457 >+msgid "Bad @b %b used as bad @b @i indirect @b. " >+msgstr "Khá»i há»ng %b Äược dùng là khá»i gián tiếp nút inode khá»i há»ng. " >+ >+#. @-expanded: \n >+#. @-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:462 >+msgid "" >+"\n" >+"The bad @b @i has probably been corrupted. You probably\n" >+"should stop now and run e2fsck -c to scan for bad blocks\n" >+"in the @f.\n" >+msgstr "" >+"\n" >+"Nút inode khá»i sai rất có thá» bá» há»ng. Äá» nghá» bạn dừng\n" >+"ngay bây giá» và chạy lá»nh « e2fsck -c » Äá» quét tìm khá»i há»ng\n" >+"trong há» thá»ng táºp tin Äó.\n" >+ >+#. @-expanded: \n >+#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n >+#: e2fsck/problem.c:469 >+msgid "" >+"\n" >+"If the @b is really bad, the @f can not be fixed.\n" >+msgstr "" >+"\n" >+"Nếu khá»i tháºt sá»± bá» há»ng, không thá» sá»a chữa há» thá»ng táºp tin Äó.\n" >+ >+#. @-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:474 >+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" >+"\n" >+msgstr "" >+"Bạn có thá» gỡ bá» khá»i nà y khá»i danh sách các khá»i há»ng\n" >+"và mong khá»i Äó tháºt sá»± là Äúng. Tuy nhiên không bảo Äảm gì.\n" >+"\n" >+ >+#. @-expanded: The primary superblock (%b) is on the bad block list.\n >+#: e2fsck/problem.c:480 >+msgid "The primary @S (%b) is on the bad @b list.\n" >+msgstr "Siêu khá»i chÃnh (%b) nằm trong danh sách các khá»i há»ng.\n" >+ >+#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n >+#: e2fsck/problem.c:485 >+msgid "Block %b in the primary @g descriptors is on the bad @b list\n" >+msgstr "Khá»i %b trong những mô tả nhóm chÃnh có nằm trong danh sách các khá»i há»ng !\n" >+ >+#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n >+#: e2fsck/problem.c:491 >+msgid "Warning: Group %g's @S (%b) is bad.\n" >+msgstr "Cảnh báo : siêu khá»i của nhóm %g (%b) bá» há»ng.\n" >+ >+#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n >+#: e2fsck/problem.c:496 >+msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n" >+msgstr "Cảnh báo : bản sao các mô tả nhóm của nhóm %g có má»t khá»i há»ng (%b).\n" >+ >+#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n >+#: e2fsck/problem.c:502 >+msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n" >+msgstr "" >+"Lá»i láºp trình ? Khá»i %b Äược tuyên bá», không có lý do,\n" >+"trong viá»c xá» lý khá»i há»ng (process_bad_block).\n" >+ >+#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n >+#: e2fsck/problem.c:508 >+msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n" >+msgstr "Gặp lá»i khi cấp phát %N khá»i ká» nhau trong nhóm khá»i %g cho %s: %m\n" >+ >+#. @-expanded: error allocating block buffer for relocating %s\n >+#: e2fsck/problem.c:513 >+#, c-format >+msgid "@A @b buffer for relocating %s\n" >+msgstr "Gặp lá»i khi cấp phát bá» Äá»m khá»i Äá» Äá»nh vá» lại %s\n" >+ >+#. @-expanded: Relocating group %g's %s from %b to %c...\n >+#: e2fsck/problem.c:518 >+msgid "Relocating @g %g's %s from %b to %c...\n" >+msgstr "Äang Äá»nh vá» lại %s của nhóm %g từ %b sang %c...\n" >+ >+#. @-expanded: Relocating group %g's %s to %c...\n >+#: e2fsck/problem.c:523 >+#, c-format >+msgid "Relocating @g %g's %s to %c...\n" >+msgstr "Äang Äá»nh vá» lại %2$s của nhóm %1$g sang %3$c...\n" >+ >+#. @-expanded: Warning: could not read block %b of %s: %m\n >+#: e2fsck/problem.c:528 >+msgid "Warning: could not read @b %b of %s: %m\n" >+msgstr "Cảnh báo : không thá» Äá»c khá»i %b trên %s: %m\n" >+ >+#. @-expanded: Warning: could not write block %b for %s: %m\n >+#: e2fsck/problem.c:533 >+msgid "Warning: could not write @b %b for %s: %m\n" >+msgstr "Cảnh báo : không thá» ghi khá»i %b cho %s: %m\n" >+ >+#. @-expanded: error allocating inode bitmap (%N): %m\n >+#: e2fsck/problem.c:538 e2fsck/problem.c:1265 >+msgid "@A @i @B (%N): %m\n" >+msgstr "Gặp lá»i khi cấp phát sÆ¡ Äá» bit nút inode (%N): %m\n" >+ >+#. @-expanded: error allocating block bitmap (%N): %m\n >+#: e2fsck/problem.c:543 >+msgid "@A @b @B (%N): %m\n" >+msgstr "Gặp lá»i khi cấp phát sÆ¡ Äá» bit khá»i (%N): %m\n" >+ >+#. @-expanded: error allocating icount link information: %m\n >+#: e2fsck/problem.c:548 >+#, c-format >+msgid "@A icount link information: %m\n" >+msgstr "Gặp lá»i khi cấp phát thông tin liên kết Äếm icount: %m\n" >+ >+#. @-expanded: error allocating directory block array: %m\n >+#: e2fsck/problem.c:553 >+#, c-format >+msgid "@A @d @b array: %m\n" >+msgstr "Gặp lá»i khi cấp phát mảng khá»i thÆ° mục: %m\n" >+ >+#. @-expanded: Error while scanning inodes (%i): %m\n >+#: e2fsck/problem.c:558 >+#, c-format >+msgid "Error while scanning @is (%i): %m\n" >+msgstr "Gặp lá»i khi quét các nút inode (%i): %m\n" >+ >+#. @-expanded: Error while iterating over blocks in inode %i: %m\n >+#: e2fsck/problem.c:563 >+#, c-format >+msgid "Error while iterating over @bs in @i %i: %m\n" >+msgstr "Gặp lá»i khi lặp lại trên các khá»i trong nút inode %i: %m\n" >+ >+#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n >+#: e2fsck/problem.c:568 >+msgid "Error storing @i count information (@i=%i, count=%N): %m\n" >+msgstr "Gặp lá»i khi cất giữ thông tin Äếm nút inode (inode=%i, tá»ng=%N): %m\n" >+ >+#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n >+#: e2fsck/problem.c:573 >+msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n" >+msgstr "Gặp lá»i khi cất giữ thông tin khá»i thÆ° mục (inode=%i, khá»i=%b, sá»=%N): %m\n" >+ >+#. @-expanded: Error reading inode %i: %m\n >+#: e2fsck/problem.c:579 >+#, c-format >+msgid "Error reading @i %i: %m\n" >+msgstr "Gặp lá»i khi Äá»c nút inode %i: %m\n" >+ >+#. @-expanded: inode %i has imagic flag set. >+#: e2fsck/problem.c:587 >+#, c-format >+msgid "@i %i has imagic flag set. " >+msgstr "Nút inode %i Äã Äặt cá» ma thuáºt imagic. " >+ >+#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n >+#. @-expanded: or append-only flag set. >+#: e2fsck/problem.c:592 >+#, c-format >+msgid "" >+"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n" >+"or append-only flag set. " >+msgstr "" >+"Táºp tin (thiết bá»/á» cắm/FIFO/liên kết tượng trÆ°ng) Äặc biá»t\n" >+"(nút inode %i) Äã Äặt cá» không thay Äá»i (immutable) hay\n" >+"chá» phu thêm (append-only)." >+ >+#. @-expanded: inode %i has compression flag set on filesystem without compression support. >+#: e2fsck/problem.c:598 >+#, c-format >+msgid "@i %i has @cion flag set on @f without @cion support. " >+msgstr "" >+"Nút inode %i Äã Äặt cá» nén trên há» thá»ng táºp tin,\n" >+"mà không há» trợ khả nÄng nén. " >+ >+#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size. >+#: e2fsck/problem.c:603 >+#, c-format >+msgid "Special (@v/socket/fifo) @i %i has non-zero size. " >+msgstr "Nút inode (thiết bá»/á» cắm/FIFO) Äặc biá»t %i có kÃch cỡ khác không. " >+ >+#. @-expanded: journal inode is not in use, but contains data. >+#: e2fsck/problem.c:613 >+msgid "@j @i is not in use, but contains data. " >+msgstr "Nút inode nháºt ký không Äang Äược dùng, còn chứa dữ liá»u. " >+ >+#. @-expanded: journal is not regular file. >+#: e2fsck/problem.c:618 >+msgid "@j is not regular file. " >+msgstr "Nháºt ký không phải là táºp tin chuẩn. " >+ >+#. @-expanded: inode %i was part of the orphaned inode list. >+#: e2fsck/problem.c:623 >+#, c-format >+msgid "@i %i was part of the @o @i list. " >+msgstr "Nút inode %i Äã là phần danh sách các nút inode côì cút. " >+ >+#. @-expanded: inodes that were part of a corrupted orphan linked list found. >+#: e2fsck/problem.c:629 >+msgid "@is that were part of a corrupted orphan linked list found. " >+msgstr "" >+"các nút inode Äã là phần của danh sách má» côi Äã liên kết bá» há»ng\n" >+"Äã Äược tìm. " >+ >+#. @-expanded: error allocating refcount structure (%N): %m\n >+#: e2fsck/problem.c:634 >+msgid "@A refcount structure (%N): %m\n" >+msgstr "Gặp lá»i khi cấp phát cấu trúc sá» Äếm tham chiếu (%N): %m\n" >+ >+#. @-expanded: Error reading extended attribute block %b for inode %i. >+#: e2fsck/problem.c:639 >+msgid "Error reading @a @b %b for @i %i. " >+msgstr "Gặp lá»i khi Äá»c khá»i thuá»c tÃnh Äã má» rá»ng %b cho nút inode %i. " >+ >+#. @-expanded: inode %i has a bad extended attribute block %b. >+#: e2fsck/problem.c:644 >+msgid "@i %i has a bad @a @b %b. " >+msgstr "Nút inode %i có khá»i thuá»c tÃnh Äã má» rá»ng há»ng %b. " >+ >+#. @-expanded: Error reading extended attribute block %b (%m). >+#: e2fsck/problem.c:649 >+msgid "Error reading @a @b %b (%m). " >+msgstr "Gặp lá»i khi Äá»c khá»i thuá»c tÃnh Äã má» rá»ng %b (%m). " >+ >+#. @-expanded: extended attribute block %b has reference count %B, should be %N. >+#: e2fsck/problem.c:654 >+msgid "@a @b %b has reference count %B, @s %N. " >+msgstr "Khá»i thuá»c tÃnh Äã má» rá»ng %b có sá» Äếm tham chiếu %B, còn nên là %N. " >+ >+#. @-expanded: Error writing extended attribute block %b (%m). >+#: e2fsck/problem.c:659 >+msgid "Error writing @a @b %b (%m). " >+msgstr "Gặp lá»i khi ghi khá»i thuá»c tÃnh %b (%m). " >+ >+#. @-expanded: extended attribute block %b has h_blocks > 1. >+#: e2fsck/problem.c:664 >+msgid "@a @b %b has h_@bs > 1. " >+msgstr "Khá»i thuá»c tÃnh Äã má» rá»ng %b có khá»i h_blocks > 1. " >+ >+#. @-expanded: error allocating extended attribute block %b. >+#: e2fsck/problem.c:669 >+msgid "@A @a @b %b. " >+msgstr "Gặp lá»i khi cấp phát khá»i thuá»c tÃnh Äã má» rá»ng %b. " >+ >+#. @-expanded: extended attribute block %b is corrupt (allocation collision). >+#: e2fsck/problem.c:674 >+msgid "@a @b %b is corrupt (allocation collision). " >+msgstr "Khá»i thuá»c tÃnh Äã má» rá»ng %b bá» há»ng (sá»± xung Äá»t cấp phát). " >+ >+#. @-expanded: extended attribute block %b is corrupt (invalid name). >+#: e2fsck/problem.c:679 >+msgid "@a @b %b is corrupt (@n name). " >+msgstr "Khá»i thuá»c tÃnh Äã má» rá»ng %b bá» há»ng (tên không hợp lá»). " >+ >+#. @-expanded: extended attribute block %b is corrupt (invalid value). >+#: e2fsck/problem.c:684 >+msgid "@a @b %b is corrupt (@n value). " >+msgstr "Khá»i thuá»c tÃnh Äã má» rá»ng %b bá» há»ng ( giá trá» không hợp lá»). " >+ >+#. @-expanded: inode %i is too big. >+#: e2fsck/problem.c:689 >+#, c-format >+msgid "@i %i is too big. " >+msgstr "Nút inode %i là quá lá»n. " >+ >+#. @-expanded: block #%B (%b) causes directory to be too big. >+#: e2fsck/problem.c:693 >+msgid "@b #%B (%b) causes @d to be too big. " >+msgstr "Khá»i sá» %B (%b) gây ra thÆ° mục là quá lá»n. " >+ >+#. @-expanded: block #%B (%b) causes file to be too big. >+#: e2fsck/problem.c:698 >+msgid "@b #%B (%b) causes file to be too big. " >+msgstr "Khá»i sá» %B (%b) gây ra táºp tin là quá lá»n. " >+ >+#. @-expanded: block #%B (%b) causes symlink to be too big. >+#: e2fsck/problem.c:703 >+msgid "@b #%B (%b) causes symlink to be too big. " >+msgstr "Khá»i sá» %B (%b) gây ra liên kết tượng trÆ°ng là quá lá»n. " >+ >+#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n >+#: e2fsck/problem.c:708 >+#, c-format >+msgid "@i %i has INDEX_FL flag set on @f without htree support.\n" >+msgstr "" >+"Nút inode %i Äã Äặt cá» chá» mục INDEX_FL trên há» thá»ng táºp tin\n" >+"không há» trợ HCÃY.\n" >+ >+#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n >+#: e2fsck/problem.c:713 >+#, c-format >+msgid "@i %i has INDEX_FL flag set but is not a @d.\n" >+msgstr "Nút inode %i Äã Äặt cá» chá» mục INDEX_FL nhÆ°ng không phải là thÆ° mục.\n" >+ >+#. @-expanded: HTREE directory inode %i has an invalid root node.\n >+#: e2fsck/problem.c:718 >+#, c-format >+msgid "@h %i has an @n root node.\n" >+msgstr "Nút inode thÆ° mục HCÃY %i có nút gá»c không hợp lá».\n" >+ >+#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n >+#: e2fsck/problem.c:723 >+msgid "@h %i has an unsupported hash version (%N)\n" >+msgstr "Nút inode thÆ° mục HCÃY %i có phiên bản bÄm không Äược há» trợ (%N)\n" >+ >+#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n >+#: e2fsck/problem.c:728 >+#, c-format >+msgid "@h %i uses an incompatible htree root node flag.\n" >+msgstr "Nút inode thÆ° mục HCÃY %i dùng má»t cá» nút gá»c HCÃY không tÆ°Æ¡ng thÃch.\n" >+ >+#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n >+#: e2fsck/problem.c:733 >+msgid "@h %i has a tree depth (%N) which is too big\n" >+msgstr "Nút inode thÆ° mục HCÃY %i có Äá» sâu cây (%N) là quá lá»n.\n" >+ >+#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n >+#. @-expanded: filesystem metadata. >+#: e2fsck/problem.c:738 >+msgid "" >+"Bad @b @i has an indirect @b (%b) that conflicts with\n" >+"@f metadata. " >+msgstr "" >+"Nút inode khá»i há»ng có má»t khá»i gián tiếp (%b) xung Äá»t\n" >+"vá»i siêu dữ liá»u vá» há» thá»ng táºp tin." >+ >+#. @-expanded: Resize inode (re)creation failed: %m. >+#: e2fsck/problem.c:744 >+#, c-format >+msgid "Resize @i (re)creation failed: %m." >+msgstr "Viá»c tạo (lại) nút inode thay Äá»i kÃch cỡ bá» lá»i: %m" >+ >+#. @-expanded: inode %i has a extra size (%IS) which is invalid\n >+#: e2fsck/problem.c:749 >+msgid "@i %i has a extra size (%IS) which is @n\n" >+msgstr "Nút inode %i có kÃch cỡ thêm (%IS) là không hợp lá».\n" >+ >+#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n >+#: e2fsck/problem.c:754 >+msgid "@a in @i %i has a namelen (%N) which is @n\n" >+msgstr "" >+"Thuá»c tÃnh Äã má» rá»ng trong nút inode %i có Äá» dà i tên (namelen) (%N)\n" >+"không hợp lá».\n" >+ >+#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n >+#: e2fsck/problem.c:759 >+msgid "@a in @i %i has a value size (%N) which is @n\n" >+msgstr "" >+"Thuá»c tÃnh Äã má» rá»ng trong nút inode %i có kÃch cỡ giá trá» (%N)\n" >+"không hợp lá».\n" >+ >+#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n >+#: e2fsck/problem.c:764 >+msgid "@a in @i %i has a value offset (%N) which is @n\n" >+msgstr "" >+"Thuá»c tÃnh Äã má» rá»ng trong nút inode %i có hiá»u sá» giá trá» (%N)\n" >+"không hợp lá».\n" >+ >+#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n >+#: e2fsck/problem.c:769 >+msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n" >+msgstr "" >+"Thuá»c tÃnh Äã má» rá»ng trong nút inode %i có khá»i giá trá» (%N)\n" >+"không hợp lá» (phải là 0).\n" >+ >+#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid (must be 0)\n >+#: e2fsck/problem.c:774 >+msgid "@a in @i %i has a hash (%N) which is @n (must be 0)\n" >+msgstr "" >+"Thuá»c tÃnh Äã má» rá»ng trong nút inode %i có bÄm (%N)\n" >+"là không hợp lá» (phải là 0).\n" >+ >+#. @-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:781 >+msgid "" >+"\n" >+"Running additional passes to resolve @bs claimed by more than one @i...\n" >+"Pass 1B: Rescanning for @m @bs\n" >+msgstr "" >+"\n" >+"Äạng chạy má»t sá» lần qua thêm Äá» tháo gỡ các khá»i Äã Äược tuyên bá»\n" >+"bá»i nhiá»u nút inode...\n" >+"Lần qua 1B: Äang quét lại tìm khá»i Äã Äược tuyên bá» nhiá»u lần.\n" >+ >+#. @-expanded: multiply-claimed block(s) in inode %i: >+#: e2fsck/problem.c:787 >+#, c-format >+msgid "@m @b(s) in @i %i:" >+msgstr "khá»i Äã Äược tuyên bá» nhiá»u lần trong nút inode %i:" >+ >+#: e2fsck/problem.c:802 >+#, c-format >+msgid "Error while scanning inodes (%i): %m\n" >+msgstr "Gặp lá»i khi quét các nút inode (%i): %m\n" >+ >+#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n >+#: e2fsck/problem.c:807 >+#, c-format >+msgid "@A @i @B (@i_dup_map): %m\n" >+msgstr "Gặp lá»i khi cấp phát sÆ¡ Äá» bit inode (inode_dup_map): %m\n" >+ >+#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n >+#: e2fsck/problem.c:812 >+#, c-format >+msgid "Error while iterating over @bs in @i %i (%s): %m\n" >+msgstr "Gặp lá»i khi lặp lại trên các khá»i trong nút inode %i (%s): %m\n" >+ >+#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n >+#: e2fsck/problem.c:817 e2fsck/problem.c:1133 >+msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n" >+msgstr "" >+"Gặp lá»i khi Äiá»u chá»nh sá» Äếm tham chiếu cho khá»i thuá»c tÃnh Äã má» rá»ng %b\n" >+"(inode %i): %m\n" >+ >+#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n >+#: e2fsck/problem.c:823 >+msgid "Pass 1C: Scanning directories for @is with @m @bs\n" >+msgstr "" >+"Lần qua 1C: Äang quét các thÆ° mục tìm nút inode có khá»i Äã Äược tuyên bá»\n" >+"nhiá»u lần\n" >+ >+#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n >+#: e2fsck/problem.c:829 >+msgid "Pass 1D: Reconciling @m @bs\n" >+msgstr "Lần qua 1D: Äang Äiá»u hoà các khá»i Äã Äược tuyên bá» nhiá»u lần\n" >+ >+#. @-expanded: File %Q (inode #%i, mod time %IM) \n >+#. @-expanded: has %B multiply-claimed block(s), shared with %N file(s):\n >+#: e2fsck/problem.c:834 >+msgid "" >+"File %Q (@i #%i, mod time %IM) \n" >+" has %B @m @b(s), shared with %N file(s):\n" >+msgstr "" >+"Táºp tin %Q (nút inode sá» %i, giá» sá»a Äá»i %IM) \n" >+"có %B khá»i Äã Äược tuyên bá» nhiá»u lần, Äược chia ra %N táºp tin:\n" >+ >+#. @-expanded: \t%Q (inode #%i, mod time %IM)\n >+#: e2fsck/problem.c:840 >+msgid "\t%Q (@i #%i, mod time %IM)\n" >+msgstr "\t%Q (nút inode #%i, giá» sá»a Äá»i %IM)\n" >+ >+#. @-expanded: \t<filesystem metadata>\n >+#: e2fsck/problem.c:845 >+msgid "\t<@f metadata>\n" >+msgstr "\t<siêu dữ liá»u vá» há» thá»ng táºp tin>\n" >+ >+#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n >+#. @-expanded: \n >+#: e2fsck/problem.c:850 >+msgid "" >+"(There are %N @is containing @m @bs.)\n" >+"\n" >+msgstr "" >+"(Có %N nút inode chứa khá»i Äã Äược tuyên bá» nhiá»u lần.)\n" >+"\n" >+ >+#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n >+#. @-expanded: \n >+#: e2fsck/problem.c:855 >+msgid "" >+"@m @bs already reassigned or cloned.\n" >+"\n" >+msgstr "" >+"Các khá»i Äã Äược tuyên bá» nhiá»u lần Äã Äược cấp phát lại\n" >+"hay Äược nhái theo.\n" >+"\n" >+ >+#: e2fsck/problem.c:868 >+#, c-format >+msgid "Couldn't clone file: %m\n" >+msgstr "Không thá» nhái theo táºp tin: %m\n" >+ >+#. @-expanded: Pass 2: Checking directory structure\n >+#: e2fsck/problem.c:874 >+msgid "Pass 2: Checking @d structure\n" >+msgstr "Lần qua 2: Äang kiá»m tra cấu trúc thÆ° mục\n" >+ >+#. @-expanded: invalid inode number for '.' in directory inode %i.\n >+#: e2fsck/problem.c:879 >+#, c-format >+msgid "@n @i number for '.' in @d @i %i.\n" >+msgstr "Sá» nút inode không hợp lá» cho « . » trong nút inode thÆ° mục %i.\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n >+#: e2fsck/problem.c:884 >+msgid "@E has @n @i #: %Di.\n" >+msgstr "Mục nháºp « %Dn » trong %p (%i) có sá» hiá»u nút inode không hợp lá»: %Di.\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di. >+#: e2fsck/problem.c:889 >+msgid "@E has @D/unused @i %Di. " >+msgstr "Mục nháºp « %Dn » trong %p (%i) có nút inode bá» xoá bá»/không Äược dùng %Di. " >+ >+#. @-expanded: entry '%Dn' in %p (%i) is a link to '.' >+#: e2fsck/problem.c:894 >+msgid "@E @L to '.' " >+msgstr "Mục nháºp « %Dn » trong %p (%i) là liên kết Äến « . » " >+ >+#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n >+#: e2fsck/problem.c:899 >+msgid "@E points to @i (%Di) located in a bad @b.\n" >+msgstr "Mục nháºp « %Dn » trong %p (%i) chá» tá»i nút inode (%Di) nằm trong khá»i há»ng.\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n >+#: e2fsck/problem.c:904 >+msgid "@E @L to @d %P (%Di).\n" >+msgstr "Mục nháºp « %Dn » trong %p (%i) là liên kết Äến thÆ° mục %P (%Di).\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n >+#: e2fsck/problem.c:909 >+msgid "@E @L to the @r.\n" >+msgstr "Mục nháºp « %Dn » trong %p (%i) là liên kết Äến nút inode gá»c.\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n >+#: e2fsck/problem.c:914 >+msgid "@E has illegal characters in its name.\n" >+msgstr "Mục nháºp « %Dn » trong %p (%i) có tên chứa ký tá»± cấm.\n" >+ >+#. @-expanded: Missing '.' in directory inode %i.\n >+#: e2fsck/problem.c:919 >+#, c-format >+msgid "Missing '.' in @d @i %i.\n" >+msgstr "Còn thiếu « . » trong nút inode thÆ° mục %i.\n" >+ >+#. @-expanded: Missing '..' in directory inode %i.\n >+#: e2fsck/problem.c:924 >+#, c-format >+msgid "Missing '..' in @d @i %i.\n" >+msgstr "Còn thiếu « .. » trong nút inode thÆ° mục %i.\n" >+ >+#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n >+#: e2fsck/problem.c:929 >+msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n" >+msgstr "" >+"Mục nháºp thứ nhất « %Dn » (nút inode=%Di) trong nút inode thÆ° mục %i (%p)\n" >+"nên là « . ».\n" >+ >+#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n >+#: e2fsck/problem.c:934 >+msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n" >+msgstr "" >+"Mục nháºp thứ hai « %Dn » (nút inode=%Di) trong nút inode thÆ° mục %i (%p)\n" >+"nên là « .. ».\n" >+ >+#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n >+#: e2fsck/problem.c:939 >+msgid "i_faddr @F %IF, @s zero.\n" >+msgstr "Äá»a chá» i_faddr cho nút injode %i (%Q) là %IF, còn nên là sá» không.\n" >+ >+#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n >+#: e2fsck/problem.c:944 >+msgid "i_file_acl @F %If, @s zero.\n" >+msgstr "i_file_acl cho nút inode %i (%Q) là %IF, còn nên là sá» không.\n" >+ >+#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n >+#: e2fsck/problem.c:949 >+msgid "i_dir_acl @F %Id, @s zero.\n" >+msgstr "i_dir_acl cho nút inode %i (%Q) là %Id, còn nên là sá» không.\n" >+ >+#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n >+#: e2fsck/problem.c:954 >+msgid "i_frag @F %N, @s zero.\n" >+msgstr "Äoạn i_frag cho nút inode %i (%Q) là %Id, còn nên là sá» không.\n" >+ >+#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n >+#: e2fsck/problem.c:959 >+msgid "i_fsize @F %N, @s zero.\n" >+msgstr "KÃch cỡ i_fsize cho nút inode %i (%Q) là %Id, còn nên là sá» không.\n" >+ >+#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n >+#: e2fsck/problem.c:964 >+msgid "@i %i (%Q) has @n mode (%Im).\n" >+msgstr "Nút inode %i (%Q) có chế Äá» không hợp lá» (%Im).\n" >+ >+#. @-expanded: directory inode %i, block %B, offset %N: directory corrupted\n >+#: e2fsck/problem.c:969 >+msgid "@d @i %i, @b %B, offset %N: @d corrupted\n" >+msgstr "Nút inode thÆ° mục %i, khá»i %B, hiá»u %N: thÆ° mục bá» há»ng\n" >+ >+#. @-expanded: directory inode %i, block %B, offset %N: filename too long\n >+#: e2fsck/problem.c:974 >+msgid "@d @i %i, @b %B, offset %N: filename too long\n" >+msgstr "Nút inode thÆ° mục %i, khá»i %B, hiá»u %N: tên táºp tin quá dà i\n" >+ >+#. @-expanded: directory inode %i has an unallocated block #%B. >+#: e2fsck/problem.c:979 >+msgid "@d @i %i has an unallocated @b #%B. " >+msgstr "Nút inode thÆ° mục %i có má»t khá»i chÆ°a cấp phát sá» %B. " >+ >+#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n >+#: e2fsck/problem.c:984 >+#, c-format >+msgid "'.' @d @e in @d @i %i is not NULL terminated\n" >+msgstr "Mục nháºp thÆ° mục « . » trong nút inode thÆ° mục %i không Äược chấm dứt Rá»NG.\n" >+ >+#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n >+#: e2fsck/problem.c:989 >+#, c-format >+msgid "'..' @d @e in @d @i %i is not NULL terminated\n" >+msgstr "Mục nháºp thÆ° mục « .. » trong nút inode thÆ° mục %i không Äược chấm dứt Rá»NG.\n" >+ >+#. @-expanded: inode %i (%Q) is an illegal character device.\n >+#: e2fsck/problem.c:994 >+msgid "@i %i (%Q) is an @I character @v.\n" >+msgstr "Nút inode %i (%Q) là thiết bá» ký tá»± cấm.\n" >+ >+#. @-expanded: inode %i (%Q) is an illegal block device.\n >+#: e2fsck/problem.c:999 >+msgid "@i %i (%Q) is an @I @b @v.\n" >+msgstr "Nút inode %i (%Q) là thiết bá» khá»i cấm.\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n >+#: e2fsck/problem.c:1004 >+msgid "@E is duplicate '.' @e.\n" >+msgstr "Mục nháºp « %Dn » trong %p (%i) là mục nháºp « . » trùng.\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n >+#: e2fsck/problem.c:1009 >+msgid "@E is duplicate '..' @e.\n" >+msgstr "Mục nháºp « %Dn » trong %p (%i) là mục nháºp « .. » trùng.\n" >+ >+#: e2fsck/problem.c:1014 e2fsck/problem.c:1290 >+#, c-format >+msgid "Internal error: couldn't find dir_info for %i.\n" >+msgstr "Lá»i ná»i bá» : không tìm thấy thông tin thÆ° mục (dir_info) vá» %i.\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n >+#: e2fsck/problem.c:1019 >+msgid "@E has rec_len of %Dr, @s %N.\n" >+msgstr "" >+"Mục nháºp « %Dn » trong %p (%i) có Äá» dà i mục nháºp (rec_len) là %Dr,\n" >+"còn nên là %N.\n" >+ >+#. @-expanded: error allocating icount structure: %m\n >+#: e2fsck/problem.c:1024 >+#, c-format >+msgid "@A icount structure: %m\n" >+msgstr "Gặp lá»i khi cấp phát cấu trúc Äếm icount: %m\n" >+ >+#. @-expanded: Error iterating over directory blocks: %m\n >+#: e2fsck/problem.c:1029 >+#, c-format >+msgid "Error iterating over @d @bs: %m\n" >+msgstr "Gặp lá»i khi lặp lại trên các khá»i thÆ° mục: %m\n" >+ >+#. @-expanded: Error reading directory block %b (inode %i): %m\n >+#: e2fsck/problem.c:1034 >+msgid "Error reading @d @b %b (@i %i): %m\n" >+msgstr "Gặp lá»i khi Äá»c khá»i thÆ° mục %b (nút inode %i): %m\n" >+ >+#. @-expanded: Error writing directory block %b (inode %i): %m\n >+#: e2fsck/problem.c:1039 >+msgid "Error writing @d @b %b (@i %i): %m\n" >+msgstr "Gặp lá»i khi ghi khá»i thÆ° mục %b (nút inode %i): %m\n" >+ >+#. @-expanded: error allocating new directory block for inode %i (%s): %m\n >+#: e2fsck/problem.c:1044 >+#, c-format >+msgid "@A new @d @b for @i %i (%s): %m\n" >+msgstr "Gặp lá»i khi cấp phát khá»i thÆ° mục má»i cho nút inode %i (%s): %m\n" >+ >+#. @-expanded: Error deallocating inode %i: %m\n >+#: e2fsck/problem.c:1049 >+#, c-format >+msgid "Error deallocating @i %i: %m\n" >+msgstr "Gặp lá»i khi hủy cấp phát nút inode %i: %m\n" >+ >+#. @-expanded: directory entry for '.' is big. >+#: e2fsck/problem.c:1054 >+msgid "@d @e for '.' is big. " >+msgstr "mục nháºp thÆ° mục cho « . » là quá lá»n. " >+ >+#. @-expanded: inode %i (%Q) is an illegal FIFO.\n >+#: e2fsck/problem.c:1059 >+msgid "@i %i (%Q) is an @I FIFO.\n" >+msgstr "Nút inode %i (%Q) là má»t FIFO cấm.\n" >+ >+#. @-expanded: inode %i (%Q) is an illegal socket.\n >+#: e2fsck/problem.c:1064 >+msgid "@i %i (%Q) is an @I socket.\n" >+msgstr "Nút inode %i (%Q) là má»t á» cắm cấm.\n" >+ >+#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n >+#: e2fsck/problem.c:1069 >+msgid "Setting filetype for @E to %N.\n" >+msgstr "Äang Äặt kiá»u táºp tin cho mục nháºp « %Dn » trong %p (%i) thà nh %N.\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n >+#: e2fsck/problem.c:1074 >+msgid "@E has an incorrect filetype (was %Dt, @s %N).\n" >+msgstr "" >+"Mục nháºp « %Dn » trong %p (%i) có kiá»u tên táºp tin không Äúng (Äã %Dt,\n" >+"còn nên là %N).\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n >+#: e2fsck/problem.c:1079 >+msgid "@E has filetype set.\n" >+msgstr "Mục nháºp « %Dn » trong %p (%i) Äã Äặt kiá»u tên táºp tin.\n" >+ >+#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n >+#: e2fsck/problem.c:1084 >+msgid "@E has a @z name.\n" >+msgstr "Mục nháºp « %Dn » trong %p (%i) có tên dà i bằng sá» không.\n" >+ >+#. @-expanded: Symlink %Q (inode #%i) is invalid.\n >+#: e2fsck/problem.c:1089 >+msgid "Symlink %Q (@i #%i) is @n.\n" >+msgstr "Liên kết tượng trÆ°ng %Q (nút inode #%i) là không hợp lá».\n" >+ >+#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n >+#: e2fsck/problem.c:1094 >+msgid "@a @b @F @n (%If).\n" >+msgstr "Khá»i thuá»c tÃnh Äã má» rá»ng cho nút inode %i (%Q) là không hợp lá» (%If).\n" >+ >+#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n >+#: e2fsck/problem.c:1099 >+msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n" >+msgstr "" >+"Há» thá»ng táºp tin chứa táºp tin lá»n, còn thiếu cá» táºp tin lá»n (LARGE_FILE)\n" >+"trong siêu khá»i.\n" >+ >+#. @-expanded: problem in HTREE directory inode %d: node (%B) not referenced\n >+#: e2fsck/problem.c:1104 >+msgid "@p @h %d: node (%B) not referenced\n" >+msgstr "Gặp lá»i trong nút inode thÆ° mục HCÃY %d: nút (%B) không có tham chiếu.\n" >+ >+#. @-expanded: problem in HTREE directory inode %d: node (%B) referenced twice\n >+#: e2fsck/problem.c:1109 >+msgid "@p @h %d: node (%B) referenced twice\n" >+msgstr "Gặp lá»i trong nút inode thÆ° mục HCÃY %d: nút (%B) có tham chiếu hai lần.\n" >+ >+#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad min hash\n >+#: e2fsck/problem.c:1114 >+msgid "@p @h %d: node (%B) has bad min hash\n" >+msgstr "Gặp lá»i trong nút inode thÆ° mục HCÃY %d: nút (%B) có bÄm tá»i thiá»u sai.\n" >+ >+#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad max hash\n >+#: e2fsck/problem.c:1119 >+msgid "@p @h %d: node (%B) has bad max hash\n" >+msgstr "Gặp lá»i trong nút inode thÆ° mục HCÃY %d: nút (%B) có bÄm tá»i Äa sai.\n" >+ >+#. @-expanded: invalid HTREE directory inode %d (%q). >+#: e2fsck/problem.c:1124 >+msgid "@n @h %d (%q). " >+msgstr "Nút inode thÆ° mục HCÃY không hợp lá» %d (%q). " >+ >+#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n >+#: e2fsck/problem.c:1128 >+msgid "@p @h %d (%q): bad @b number %b.\n" >+msgstr "Gặp lá»i trong nút inode thÆ° mục HCÃY %d (%q): sá» hiá»u khá»i sai %b.\n" >+ >+#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n >+#: e2fsck/problem.c:1138 >+#, c-format >+msgid "@p @h %d: root node is @n\n" >+msgstr "Gặp lá»i trong nút inode thÆ° mục HCÃY %d: nút gá»c là không hợp lá».\n" >+ >+#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid limit (%N)\n >+#: e2fsck/problem.c:1143 >+msgid "@p @h %d: node (%B) has @n limit (%N)\n" >+msgstr "" >+"Gặp lá»i trong nút inode thÆ° mục HCÃY %d: nút (%B)\n" >+"có hạn chế không hợp lá» (%N).\n" >+ >+#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid count (%N)\n >+#: e2fsck/problem.c:1148 >+msgid "@p @h %d: node (%B) has @n count (%N)\n" >+msgstr "" >+"Gặp lá»i trong nút inode thÆ° mục HCÃY %d: nút (%B) có sá» Äếm\n" >+"không hợp lá» (%N).\n" >+ >+#. @-expanded: problem in HTREE directory inode %d: node (%B) has an unordered hash table\n >+#: e2fsck/problem.c:1153 >+msgid "@p @h %d: node (%B) has an unordered hash table\n" >+msgstr "" >+"Gặp lá»i trong nút inode thÆ° mục HCÃY %d: nút (%B) có bảng bÄm\n" >+"không có thứ tá»±.\n" >+ >+#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid depth\n >+#: e2fsck/problem.c:1158 >+msgid "@p @h %d: node (%B) has @n depth\n" >+msgstr "" >+"Gặp lá»i trong nút inode thÆ° mục HCÃY %d: nút (%B) có Äá» sâu\n" >+"không hợp lá».\n" >+ >+#. @-expanded: Duplicate entry '%Dn' in %p (%i) found. >+#: e2fsck/problem.c:1163 >+msgid "Duplicate @E found. " >+msgstr "Tìm thấy mục nháºp trùng « %Dn » trong %p (%i). " >+ >+#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n >+#. @-expanded: Rename to %s >+#: e2fsck/problem.c:1168 >+#, no-c-format >+msgid "" >+"@E has a non-unique filename.\n" >+"Rename to %s" >+msgstr "" >+"Mục nháºp trùng « %Dn » trong %p (%i) có tên táºp tin không duy nhất.\n" >+"Thay Äá»i tên thà nh %s" >+ >+#. @-expanded: Duplicate entry '%Dn' found.\n >+#. @-expanded: \tMarking %p (%i) to be rebuilt.\n >+#. @-expanded: \n >+#: e2fsck/problem.c:1173 >+msgid "" >+"Duplicate @e '%Dn' found.\n" >+"\tMarking %p (%i) to be rebuilt.\n" >+"\n" >+msgstr "" >+"Tìm thấy mục nháºp trùng « %Dn ».\n" >+"Äang nhãn %p (%i) Äá» Äược xây dá»±ng lại.\n" >+"\n" >+ >+#. @-expanded: Pass 3: Checking directory connectivity\n >+#: e2fsck/problem.c:1180 >+msgid "Pass 3: Checking @d connectivity\n" >+msgstr "Lần qua 3: Äang kiá»m tra khả nÄng kÃêt ná»i thÆ° mục\n" >+ >+#. @-expanded: root inode not allocated. >+#: e2fsck/problem.c:1185 >+msgid "@r not allocated. " >+msgstr "ChÆ°a cấp phát nút inode gá»c. " >+ >+#. @-expanded: No room in lost+found directory. >+#: e2fsck/problem.c:1190 >+msgid "No room in @l @d. " >+msgstr "Không có chá» còn rảnh trong thÆ° mục mất+tìm. " >+ >+#. @-expanded: Unconnected directory inode %i (%p)\n >+#: e2fsck/problem.c:1195 >+#, c-format >+msgid "Unconnected @d @i %i (%p)\n" >+msgstr "Có nút inode thÆ° mục chÆ°a kết ná»i %i (%p)\n" >+ >+#. @-expanded: /lost+found not found. >+#: e2fsck/problem.c:1200 >+msgid "/@l not found. " >+msgstr "Không tìm thấy /mất+tìm. " >+ >+#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n >+#: e2fsck/problem.c:1205 >+msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n" >+msgstr "« .. » trong %Q (%i) là %P (%j), còn nên là %q (%d).\n" >+ >+#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n >+#: e2fsck/problem.c:1210 >+msgid "Bad or non-existent /@l. Cannot reconnect.\n" >+msgstr "Có /mất+tìm sai hay không tá»n tại nên không thá» kết ná»i lại.\n" >+ >+#. @-expanded: Could not expand /lost+found: %m\n >+#: e2fsck/problem.c:1215 >+#, c-format >+msgid "Could not expand /@l: %m\n" >+msgstr "Không thá» má» rá»ng /mất+tìm: %m\n" >+ >+#: e2fsck/problem.c:1220 >+#, c-format >+msgid "Could not reconnect %i: %m\n" >+msgstr "Không thá» kết ná»i lại %i: %m\n" >+ >+#. @-expanded: Error while trying to find /lost+found: %m\n >+#: e2fsck/problem.c:1225 >+#, c-format >+msgid "Error while trying to find /@l: %m\n" >+msgstr "Gặp lá»i khi cá» gắng tìm /mất+tìm: %m\n" >+ >+#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n >+#: e2fsck/problem.c:1230 >+#, c-format >+msgid "ext2fs_new_@b: %m while trying to create /@l @d\n" >+msgstr "ext2fs_new_@b: %m trong khi cá» gắng tạo thÆ° mục /mất+tìm\n" >+ >+#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n >+#: e2fsck/problem.c:1235 >+#, c-format >+msgid "ext2fs_new_@i: %m while trying to create /@l @d\n" >+msgstr "ext2fs_new_@i: %m trong khi cá» gắng tạo thÆ° mục /mất+tìm\n" >+ >+#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n >+#: e2fsck/problem.c:1240 >+#, c-format >+msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n" >+msgstr "ext2fs_new_dir_@b: %m trong khi cá» gắng tạo khá»i thÆ° mục má»i\n" >+ >+#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n >+#: e2fsck/problem.c:1245 >+#, c-format >+msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n" >+msgstr "ext2fs_write_dir_@b: %m trong khi ghi khá»i thÆ° mục cho /mất+tìm\n" >+ >+#. @-expanded: Error while adjusting inode count on inode %i\n >+#: e2fsck/problem.c:1250 >+#, c-format >+msgid "Error while adjusting @i count on @i %i\n" >+msgstr "Gặp lá»i khi Äiá»u chá»nh sá» Äếm nút inode trên nút inode %i\n" >+ >+#. @-expanded: Couldn't fix parent of inode %i: %m\n >+#. @-expanded: \n >+#: e2fsck/problem.c:1255 >+#, c-format >+msgid "" >+"Couldn't fix parent of @i %i: %m\n" >+"\n" >+msgstr "" >+"Không thá» sá»a chữa mẹ của nút inode %i: %m\n" >+"\n" >+ >+#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n >+#. @-expanded: \n >+#: e2fsck/problem.c:1260 >+#, c-format >+msgid "" >+"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n" >+"\n" >+msgstr "" >+"Không thá» sá»a chữa mẹ của nút inode %i: không tìm thấy mục nháºp thÆ° mục mẹ\n" >+"\n" >+ >+#. @-expanded: Error creating root directory (%s): %m\n >+#: e2fsck/problem.c:1270 >+#, c-format >+msgid "Error creating root @d (%s): %m\n" >+msgstr "Gặp lá»i khi tạo thÆ° mục gá»c (%s): %m\n" >+ >+#. @-expanded: Error creating /lost+found directory (%s): %m\n >+#: e2fsck/problem.c:1275 >+#, c-format >+msgid "Error creating /@l @d (%s): %m\n" >+msgstr "Gặp lá»i khi tạo thÆ° mục /mất+tìm (%s): %m\n" >+ >+#. @-expanded: root inode is not a directory; aborting.\n >+#: e2fsck/problem.c:1280 >+msgid "@r is not a @d; aborting.\n" >+msgstr "Nút inode gá»c không phải là má»t thÆ° mục nên hủy bá».\n" >+ >+#. @-expanded: Cannot proceed without a root inode.\n >+#: e2fsck/problem.c:1285 >+msgid "Cannot proceed without a @r.\n" >+msgstr "Không thá» tiếp tục khi không có nút inode gá»c.\n" >+ >+#. @-expanded: /lost+found is not a directory (ino=%i)\n >+#: e2fsck/problem.c:1295 >+#, c-format >+msgid "/@l is not a @d (ino=%i)\n" >+msgstr "/mất+tìm không phải là thÆ° mục (ino=%i)\n" >+ >+#: e2fsck/problem.c:1302 >+msgid "Pass 3A: Optimizing directories\n" >+msgstr "Lần qua 3A: Äang tá»i Æ°u hoá các thÆ° mục\n" >+ >+#: e2fsck/problem.c:1307 >+#, c-format >+msgid "Failed to create dirs_to_hash iterator: %m" >+msgstr "Lá»i tạo bá» lặp lại thÆ° mục tá»i bÄm (dirs_to_hash): %m" >+ >+#: e2fsck/problem.c:1312 >+msgid "Failed to optimize directory %q (%d): %m" >+msgstr "Lá»i tá»i Æ°u hoá thÆ° mục %q (%d): %m" >+ >+#: e2fsck/problem.c:1317 >+msgid "Optimizing directories: " >+msgstr "Äang tá»i Æ°u hoá các thÆ° mục: " >+ >+#: e2fsck/problem.c:1334 >+msgid "Pass 4: Checking reference counts\n" >+msgstr "Lần qua 4: Äang kiá»m tra các sá» Äếm tham chiếu\n" >+ >+#. @-expanded: unattached zero-length inode %i. >+#: e2fsck/problem.c:1339 >+#, c-format >+msgid "@u @z @i %i. " >+msgstr "Có nút inode dà i bằng không chÆ°a kết ná»i %i. " >+ >+#. @-expanded: unattached inode %i\n >+#: e2fsck/problem.c:1344 >+#, c-format >+msgid "@u @i %i\n" >+msgstr "Có nút inode chÆ°a kết ná»i %i.\n" >+ >+#. @-expanded: inode %i ref count is %Il, should be %N. >+#: e2fsck/problem.c:1349 >+msgid "@i %i ref count is %Il, @s %N. " >+msgstr "Nút inode %i sá» Äếm tham chiếu là %Il, còn nên là %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:1353 >+msgid "" >+"WARNING: PROGRAMMING BUG IN E2FSCK!\n" >+"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n" >+"@i_link_info[%i] is %N, @i.i_links_count is %Il. They @s the same!\n" >+msgstr "" >+"CẢNH BÃO : GẶP Lá»I LẬP TRÃNH TRONG E2FSCK !\n" >+"HOẶC NGƯá»I NÃO KIá»M TRA KHÃNG KHÃN NGOAN Má»T Há» THá»NG TẬP TIN\n" >+"Äà GẮN KẾT (HOẠT Äá»NG).\n" >+"Thông tin liên kết nút inode (inode_link_info) [%i] là %N,\n" >+"sá» Äếm liên kết nút inode (inode.i_links_count) là %Il.\n" >+"Hai sá» nà y nên là trùng !\n" >+ >+#. @-expanded: Pass 5: Checking group summary information\n >+#: e2fsck/problem.c:1363 >+msgid "Pass 5: Checking @g summary information\n" >+msgstr "Lần qua 5: Äang kiá»m tra thông tin tóm tắt nhóm\n" >+ >+#. @-expanded: Padding at end of inode bitmap is not set. >+#: e2fsck/problem.c:1368 >+msgid "Padding at end of @i @B is not set. " >+msgstr "ChÆ°a Äặt Äá» Äá»m tại kết thúc của sÆ¡ Äá» bit inode. " >+ >+#. @-expanded: Padding at end of block bitmap is not set. >+#: e2fsck/problem.c:1373 >+msgid "Padding at end of @b @B is not set. " >+msgstr "ChÆ°a Äặt Äá» Äá»m tại kết thúc của sÆ¡ Äá» bit khá»i. " >+ >+#. @-expanded: block bitmap differences: >+#: e2fsck/problem.c:1378 >+msgid "@b @B differences: " >+msgstr "Hiá»u sÆ¡ Äá» bit khá»i: " >+ >+#. @-expanded: inode bitmap differences: >+#: e2fsck/problem.c:1398 >+msgid "@i @B differences: " >+msgstr "Hiá»u sÆ¡ Äá» bit inode: " >+ >+#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n >+#: e2fsck/problem.c:1418 >+msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n" >+msgstr "Sá» Äếm nút inode rảnh là không Äúng cho nhóm sá» %g (%i, tá»ng=%j).\n" >+ >+#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n >+#: e2fsck/problem.c:1423 >+msgid "Directories count wrong for @g #%g (%i, counted=%j).\n" >+msgstr "Sá» Äếm thÆ° mục là không Äúng cho nhóm sá» %g (%i, tá»ng=%j).\n" >+ >+#. @-expanded: Free inodes count wrong (%i, counted=%j).\n >+#: e2fsck/problem.c:1428 >+msgid "Free @is count wrong (%i, counted=%j).\n" >+msgstr "Sá» Äếm nút inode rảnh là không Äúng (%i, tá»ng=%j).\n" >+ >+#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n >+#: e2fsck/problem.c:1433 >+msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n" >+msgstr "Sá» Äếm khá»i rảnh là không Äúng cho nhóm sá» %g (%b, tá»ng=%c).\n" >+ >+#. @-expanded: Free blocks count wrong (%b, counted=%c).\n >+#: e2fsck/problem.c:1438 >+msgid "Free @bs count wrong (%b, counted=%c).\n" >+msgstr "Sá» Äếm khá»i rảnh là không Äúng (%b, tá»ng=%c).\n" >+ >+#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap >+#. @-expanded: endpoints (%i, %j)\n >+#: e2fsck/problem.c:1443 >+msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n" >+msgstr "" >+"Lá»I LẬP TRÃNH: Äiá»m cuá»i sÆ¡ Äá» bit của há» thá»ng táºp tin (sá» %N) (%b, %c)\n" >+"không khá»p vá»i những Äiá»m cuá»i sÆ¡ Äá» bit Äã tÃnh (%i, %j)\n" >+ >+#: e2fsck/problem.c:1449 >+msgid "Internal error: fudging end of bitmap (%N)\n" >+msgstr "Lá»i ná»i bá» : Äang là m quấy quá kết thúc của sÆ¡ Äá» bit (%N)\n" >+ >+#. @-expanded: Error copying in replacement inode bitmap: %m\n >+#: e2fsck/problem.c:1454 >+#, c-format >+msgid "Error copying in replacement @i @B: %m\n" >+msgstr "Gặp lá»i khi sao chép và o sÆ¡ Äá» bit nút inode thay thế: %m\n" >+ >+#. @-expanded: Error copying in replacement block bitmap: %m\n >+#: e2fsck/problem.c:1459 >+#, c-format >+msgid "Error copying in replacement @b @B: %m\n" >+msgstr "Gặp lá»i khi sao chép và o sÆ¡ Äá» bit khá»i thay thế: %m\n" >+ >+#: e2fsck/problem.c:1597 >+#, c-format >+msgid "Unhandled error code (0x%x)!\n" >+msgstr "Mã lá»i chÆ°a thao tác (0x%x)!\n" >+ >+#: e2fsck/problem.c:1691 >+msgid "IGNORED" >+msgstr "Bá» Bá» QUA" >+ >+#: e2fsck/scantest.c:81 >+#, c-format >+msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n" >+msgstr "Bá» nhá» Äã chiếm: %d, thá»i gian Äã qua: %6.3f/%6.3f/%6.3f\n" >+ >+#: e2fsck/scantest.c:100 >+#, c-format >+msgid "size of inode=%d\n" >+msgstr "kÃch cỡ nút inode=%d\n" >+ >+#: e2fsck/scantest.c:121 >+msgid "while starting inode scan" >+msgstr "trong khi khá»i chạy quét nút inode" >+ >+#: e2fsck/scantest.c:132 >+msgid "while doing inode scan" >+msgstr "trong khi chạy quét nút inode" >+ >+#: e2fsck/super.c:200 >+#, c-format >+msgid "while calling ext2fs_block_iterate for inode %d" >+msgstr "trong khi gá»i hà m lặp lại khá»i « ext2fs_block_iterate » cho nút inode %d" >+ >+#: e2fsck/super.c:223 >+#, c-format >+msgid "while calling ext2fs_adjust_ea_refocunt for inode %d" >+msgstr "" >+"trong khi gá»i hà m Äiá»u chá»nh sá» Äếm tham chiếu « ext2fs_adjust_ea_refocunt »\n" >+"cho nút inode %d" >+ >+#: e2fsck/super.c:281 >+msgid "Truncating" >+msgstr "Äang cắt ngắn" >+ >+#: e2fsck/super.c:282 >+msgid "Clearing" >+msgstr "Äang xoá sạch" >+ >+#: e2fsck/swapfs.c:98 >+msgid "while calling ext2fs_block_iterate" >+msgstr "trong khi gá»i hà m lặp lại khá»i « ext2fs_block_iterate »" >+ >+#: e2fsck/swapfs.c:104 >+msgid "while calling iterator function" >+msgstr "trong khi gá»i hà m lặp lại" >+ >+#: e2fsck/swapfs.c:126 >+msgid "while allocating inode buffer" >+msgstr "trong khi cấp phát bá» Äá»m nút inode" >+ >+#: e2fsck/swapfs.c:138 >+#, c-format >+msgid "while reading inode table (group %d)" >+msgstr "trong khi Äá»c bảng nút inode (nhóm %d)" >+ >+#: e2fsck/swapfs.c:176 >+#, c-format >+msgid "while writing inode table (group %d)" >+msgstr "trong khi ghi bảng nút inode (nhóm %d)" >+ >+#: e2fsck/swapfs.c:223 >+#, c-format >+msgid "Pass 0: Doing byte-swap of filesystem\n" >+msgstr "Lần qua 0: Äang chạy viá»c trao Äá»i byte há» thá»ng táºp tin\n" >+ >+#: e2fsck/swapfs.c:230 >+#, c-format >+msgid "" >+"%s: the filesystem must be freshly checked using fsck\n" >+"and not mounted before trying to byte-swap it.\n" >+msgstr "" >+"%s: há» thá»ng táºp tin phải Äược kiá»m tra má»i, dùng fsck,\n" >+"và không Äược gắn kết trÆ°á»c khi cá» gắng trao Äá»i byte nó.\n" >+ >+#: e2fsck/swapfs.c:265 >+msgid "Byte swap" >+msgstr "Trao Äá»i byte" >+ >+#: e2fsck/unix.c:74 >+#, c-format >+msgid "" >+"Usage: %s [-panyrcdfvstDFSV] [-b superblock] [-B blocksize]\n" >+"\t\t[-I inode_buffer_blocks] [-P process_inode_size]\n" >+"\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n" >+"\t\t[-E extended-options] device\n" >+msgstr "" >+"Cách sá» dụng: %s [-panyrcdfvstDFSV] [-b siêu_khá»i] [-B cỡ_khá»i]\n" >+"\t\t[-I khá»i_Äá»m_inode] [-P cỡ_inode_xá»_lý]\n" >+"\t\t[-l|-L táºp_tin_khá»i_há»ng] [-C fd] [-j nháºt_ký_bên_ngoà i]\n" >+"\t\t[-E tùy_chá»n_má»_rá»ng] thiết_bá»\n" >+ >+#: e2fsck/unix.c:80 >+#, c-format >+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" >+" -f Force checking even if filesystem is marked clean\n" >+msgstr "" >+"\n" >+"Trợ giúp khẩn cấp:\n" >+" -p Sá»a chữa tá»± Äá»ng (không có câu há»i)\n" >+" -n Không thay Äá»i há» thá»ng táºp tin\n" >+" -y Giả sá» trả lá»i « Có » má»i câu há»i\n" >+" -c Kiá»m tra tìm khá»i há»ng: thêm và o danh sách khá»i há»ng\n" >+" -f Buá»c kiá»m tra ngay cả khi há» thá»ng táºp tin có nhãn là sạch\n" >+ >+#: e2fsck/unix.c:86 >+#, c-format >+msgid "" >+" -v Be verbose\n" >+" -b superblock Use alternative superblock\n" >+" -B blocksize Force blocksize when looking for superblock\n" >+" -j external_journal Set location of the external journal\n" >+" -l bad_blocks_file Add to badblocks list\n" >+" -L bad_blocks_file Set badblocks list\n" >+msgstr "" >+" -v \t\tXuất chi tiết\n" >+" -b siêu_khá»i \t\tDùng siêu khá»i xen kẽ\n" >+" -B cỡ_khá»i \t\tBuá»c kÃch cỡ của khá»i khi tìm siêu khá»i\n" >+" -j nháºt_ký_bên_ngoà i \tÄặt Äá»a Äiá»m của nháºt ký bên ngoà i\n" >+" -l táºp_tin_khá»i_há»ng Thêm và o danh sách các khá»i há»ng\n" >+" -L táºp_tin_khá»i_há»ng Äặt danh sách các khá»i há»ng\n" >+ >+#: e2fsck/unix.c:121 >+#, c-format >+msgid "%s: %d/%d files (%0d.%d%% non-contiguous), %u/%u blocks\n" >+msgstr "%s: %d/%d táºp tin (%0d.%d%% không ká» nhau), %u/%u khá»i\n" >+ >+#: e2fsck/unix.c:133 >+#, c-format >+msgid " # of inodes with ind/dind/tind blocks: %d/%d/%d\n" >+msgstr " sá» inode có khá»i ind/dind/tind: %d/%d/%d\n" >+ >+#: e2fsck/unix.c:177 misc/badblocks.c:779 misc/tune2fs.c:792 misc/util.c:151 >+#: resize/main.c:184 >+#, c-format >+msgid "while determining whether %s is mounted." >+msgstr "trong khi quyết Äá»nh nếu %s Äã gắn kết chÆ°a." >+ >+#: e2fsck/unix.c:195 >+#, c-format >+msgid "Warning! %s is mounted.\n" >+msgstr "Cảnh báo ! %s Äã gắn kết.\n" >+ >+#: e2fsck/unix.c:199 >+#, c-format >+msgid "%s is mounted. " >+msgstr "%s Äã gắn kết. " >+ >+#: e2fsck/unix.c:201 >+msgid "" >+"Cannot continue, aborting.\n" >+"\n" >+msgstr "" >+"Không thá» tiếp tục nên hủy bá».\n" >+"\n" >+ >+#: e2fsck/unix.c:202 >+#, c-format >+msgid "" >+"\n" >+"\n" >+"WARNING!!! Running e2fsck on a mounted filesystem may cause\n" >+"SEVERE filesystem damage.\n" >+"\n" >+msgstr "" >+"\n" >+"\n" >+"CẢNH BÃO !!! Viá»c chạy e2fsck trên há» thá»ng táºp tin Äã gắn kết\n" >+"có thá» LÃM Há»NG NẶNG há» thá»ng táºp tin Äó.\n" >+"\n" >+ >+#: e2fsck/unix.c:205 >+msgid "Do you really want to continue" >+msgstr "Bạn thá»±c sá»± muá»n tiếp tục" >+ >+#: e2fsck/unix.c:207 >+#, c-format >+msgid "check aborted.\n" >+msgstr "kiá»m tra bá» hủy bá».\n" >+ >+#: e2fsck/unix.c:277 >+msgid " contains a file system with errors" >+msgstr " chứa há» thá»ng táºp tin có lá»i" >+ >+#: e2fsck/unix.c:279 >+msgid " was not cleanly unmounted" >+msgstr " Äã không tháo gắn kết sạch" >+ >+#: e2fsck/unix.c:283 >+#, c-format >+msgid " has been mounted %u times without being checked" >+msgstr " Äã Äược gắn kết %u lần mà không Äược kiá»m tra" >+ >+#: e2fsck/unix.c:291 >+#, c-format >+msgid " has gone %u days without being checked" >+msgstr " Äã chạy trong %u ngà y mà không Äược kiá»m tra" >+ >+#: e2fsck/unix.c:300 >+msgid ", check forced.\n" >+msgstr ", kiá»m tra bỠép buá»c.\n" >+ >+#: e2fsck/unix.c:303 >+#, c-format >+msgid "%s: clean, %d/%d files, %u/%u blocks" >+msgstr "%s: sạch, %d/%d táºp tin, %u/%u khá»i" >+ >+#: e2fsck/unix.c:320 >+msgid " (check deferred; on battery)" >+msgstr " (kiá»m tra bá» hoãn; chạy bằng pin)" >+ >+#: e2fsck/unix.c:323 >+msgid " (check after next mount)" >+msgstr " (kiá»m tra sau khi gắn kết lần kế tiếp)" >+ >+#: e2fsck/unix.c:325 >+#, c-format >+msgid " (check in %ld mounts)" >+msgstr " (kiá»m tra trong %ld lần gắn kết)" >+ >+#: e2fsck/unix.c:471 >+#, c-format >+msgid "ERROR: Couldn't open /dev/null (%s)\n" >+msgstr "Lá»I: không thá» má» </dev/null> (%s)\n" >+ >+#: e2fsck/unix.c:542 >+#, c-format >+msgid "Invalid EA version.\n" >+msgstr "Phiên bản EA không hợp lá».\n" >+ >+#: e2fsck/unix.c:548 >+#, c-format >+msgid "Unknown extended option: %s\n" >+msgstr "Tùy chá»n Äã má» rá»ng không rõ : %s\n" >+ >+#: e2fsck/unix.c:566 >+#, c-format >+msgid "" >+"Syntax error in e2fsck config file (%s, line #%d)\n" >+"\t%s\n" >+msgstr "" >+"Gặp lá»i cú pháp trong táºp tin cấu hình e2fsck (%s, dòng sá» %d)\n" >+"\t%s\n" >+ >+#: e2fsck/unix.c:623 >+#, c-format >+msgid "Error validating file descriptor %d: %s\n" >+msgstr "Gặp lá»i khi hợp lá» hóa mô tả táºp tin %d: %s\n" >+ >+#: e2fsck/unix.c:627 >+msgid "Invalid completion information file descriptor" >+msgstr "Mô tả táºp tin thông tin hoà chá»nh không hợp lá»" >+ >+#: e2fsck/unix.c:642 >+msgid "Only one of the options -p/-a, -n or -y may be specified." >+msgstr "Có thá» xác Äá»nh chá» má»t của những tùy chá»n -p/-a, -n hay -y thôi." >+ >+#: e2fsck/unix.c:663 >+#, c-format >+msgid "The -t option is not supported on this version of e2fsck.\n" >+msgstr "Tùy chá»n « -t » không Äược há» trợ bá»i phiên bản e2fsck nà y.\n" >+ >+#: e2fsck/unix.c:728 >+#, c-format >+msgid "Byte-swapping filesystems not compiled in this version of e2fsck\n" >+msgstr "" >+"Há» thá»ng táºp tin trao Äá»i byte không Äược biên dá»ch\n" >+"trong phiên bản e2fsck nà y\n" >+ >+#: e2fsck/unix.c:751 misc/tune2fs.c:459 misc/tune2fs.c:717 misc/tune2fs.c:734 >+#, c-format >+msgid "Unable to resolve '%s'" >+msgstr "Không thá» quyết Äá»nh « %s »" >+ >+#: e2fsck/unix.c:782 >+#, c-format >+msgid "Incompatible options not allowed when byte-swapping.\n" >+msgstr "Không cho phép tùy chá»n không tÆ°Æ¡ng thÃch khi trao Äá»i byte.\n" >+ >+#: e2fsck/unix.c:789 >+#, c-format >+msgid "The -c and the -l/-L options may not be both used at the same time.\n" >+msgstr "Không cho phép sá» dụng tùy chá»n cả « --c » lẫn « --l/L » Äá»u Äá»ng thá»i.\n" >+ >+#: e2fsck/unix.c:867 >+#, c-format >+msgid "Error: ext2fs library version out of date!\n" >+msgstr "Lá»i: phiên bản thÆ° viá»n ext2fs quá cÅ© !\n" >+ >+#: e2fsck/unix.c:875 >+msgid "while trying to initialize program" >+msgstr "trong khi cá» gắng sá» khá»i chÆ°Æ¡ng trình" >+ >+#: e2fsck/unix.c:889 >+#, c-format >+msgid "\tUsing %s, %s\n" >+msgstr "\tDùng %s, %s\n" >+ >+#: e2fsck/unix.c:901 >+msgid "need terminal for interactive repairs" >+msgstr "cần thiết bà n Äiá»u khiá»n Äá» sá»a chữa tÆ°Æ¡ng tác" >+ >+#: e2fsck/unix.c:940 >+#, c-format >+msgid "%s trying backup blocks...\n" >+msgstr "%s Äang cá» gắng các khá»i dá»± trữ...\n" >+ >+#: e2fsck/unix.c:941 >+msgid "Couldn't find ext2 superblock," >+msgstr "Không tìm thấy siêu khá»i ext2," >+ >+#: e2fsck/unix.c:942 >+msgid "Group descriptors look bad..." >+msgstr "Các mô tả nhóm hình nhÆ° sai..." >+ >+#: e2fsck/unix.c:953 >+#, c-format >+msgid "" >+"The filesystem revision is apparently too high for this version of e2fsck.\n" >+"(Or the filesystem superblock is corrupt)\n" >+"\n" >+msgstr "" >+"Bản sá»a Äá»i há» thá»ng táºp tin có vẻ quá cao cho phiên bản e2fsck nà y\n" >+"(hoặc siêu khá»i há» thá»ng táºp tin bá» há»ng).\n" >+"\n" >+ >+#: e2fsck/unix.c:959 >+#, c-format >+msgid "Could this be a zero-length partition?\n" >+msgstr "Phân vùng nà y có thá» có Äá» dà i bằng không ?\n" >+ >+#: e2fsck/unix.c:961 >+#, c-format >+msgid "You must have %s access to the filesystem or be root\n" >+msgstr "Bạn phải có quyá»n truy cáºp %s há» thá»ng táºp tin, hay là ngÆ°á»i chủ (root)\n" >+ >+#: e2fsck/unix.c:966 >+#, c-format >+msgid "Possibly non-existent or swap device?\n" >+msgstr "Có thá» là thiết bá» không tá»n tại, hoặc thiết bá» trao Äá»i ?\n" >+ >+#: e2fsck/unix.c:968 >+#, c-format >+msgid "Filesystem mounted or opened exclusively by another program?\n" >+msgstr "Há» thá»ng táºp tin Äã Äược gắn kết hay má» hoà n toà n bá»i chÆ°Æ¡ng trình khác ?\n" >+ >+#: e2fsck/unix.c:972 >+#, c-format >+msgid "" >+"Disk write-protected; use the -n option to do a read-only\n" >+"check of the device.\n" >+msgstr "" >+"ÄÄ©a có chá»ng ghi; hãy dùng tùy chá»n « -n » Äá» chạy\n" >+"viá»c kiá»m tra chá» Äá»c thiết bá» Äó.\n" >+ >+#: e2fsck/unix.c:989 >+msgid "Get a newer version of e2fsck!" >+msgstr "Lấy phiên bản e2fsck má»i hÆ¡n !" >+ >+#: e2fsck/unix.c:1010 >+#, c-format >+msgid "while checking ext3 journal for %s" >+msgstr "trong khi kiá»m tra nháºt ký ext3 tìm %s" >+ >+#: e2fsck/unix.c:1021 >+#, c-format >+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n" >+msgstr "" >+"Cảnh báo : Äang bá» qua viá»c phục há»i nháºt ký vì Äang kiá»m tra\n" >+"há» thá»ng táºp tin má»t cách chá» Äá»c.\n" >+ >+#: e2fsck/unix.c:1034 >+#, c-format >+msgid "unable to set superblock flags on %s\n" >+msgstr "không thá» Äặt cá» siêu khá»i trên %s\n" >+ >+#: e2fsck/unix.c:1040 >+#, c-format >+msgid "while recovering ext3 journal of %s" >+msgstr "trong khi phục há»i nháºt ký ext3 của %s" >+ >+#: e2fsck/unix.c:1069 >+msgid "Warning: compression support is experimental.\n" >+msgstr "Cảnh báo : cách há» trợ khả nÄng nén là thá»±c nghiá»m.\n" >+ >+#: e2fsck/unix.c:1074 >+#, c-format >+msgid "" >+"E2fsck not compiled with HTREE support,\n" >+"\tbut filesystem %s has HTREE directories.\n" >+msgstr "" >+"E2fsck không Äược biên dá»ch Äá» há» trợ HCÃY,\n" >+"nhÆ°ng há» thá»ng táºp tin %s có thÆ° mục HCÃY.\n" >+ >+#: e2fsck/unix.c:1118 >+#, c-format >+msgid "%s: Filesystem byte order already normalized.\n" >+msgstr "%s: thứ tá»± bytê trong há» thá»ng táºp tin Äã Äược tiêu chuẩn hoá.\n" >+ >+#: e2fsck/unix.c:1138 >+msgid "while reading bad blocks inode" >+msgstr "trong khi Äá»c nút inode khá»i há»ng" >+ >+#: e2fsck/unix.c:1140 >+#, c-format >+msgid "This doesn't bode well, but we'll try to go on...\n" >+msgstr "TrÆ°á»ng hợp nà y không phải tá»t, nhÆ°ng sẽ cá» gắng tiếp tục...\n" >+ >+#: e2fsck/unix.c:1147 >+#, c-format >+msgid "Restarting e2fsck from the beginning...\n" >+msgstr "Äang khá»i chạy lại hoà n toà n e2fsck...\n" >+ >+#: e2fsck/unix.c:1151 >+msgid "while resetting context" >+msgstr "trong khi Äặt lại ngữ cảnh" >+ >+#: e2fsck/unix.c:1158 >+#, c-format >+msgid "%s: e2fsck canceled.\n" >+msgstr "%s: e2fsck bá» thôi.\n" >+ >+#: e2fsck/unix.c:1163 >+msgid "aborted" >+msgstr "bá» hủy bá»" >+ >+#: e2fsck/unix.c:1171 >+#, c-format >+msgid "" >+"\n" >+"%s: ***** FILE SYSTEM WAS MODIFIED *****\n" >+msgstr "" >+"\n" >+"%s: â¢â¢â¢â¢â¢ Há» THá»NG TẬP TIN Bá» SỬA Äá»I â¢â¢â¢â¢â¢\n" >+ >+#: e2fsck/unix.c:1174 >+#, c-format >+msgid "%s: ***** REBOOT LINUX *****\n" >+msgstr "%s: â¢â¢â¢â¢â¢ HÃY KHá»I Äá»NG LẠI LINUX â¢â¢â¢â¢â¢\n" >+ >+#: e2fsck/unix.c:1182 >+#, c-format >+msgid "" >+"\n" >+"%s: ********** WARNING: Filesystem still has errors **********\n" >+"\n" >+msgstr "" >+"\n" >+"%s: â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢ CẢNH BÃO : há» thá»ng táºp tin vẫn còn có lá»i â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢\n" >+"\n" >+ >+#: e2fsck/util.c:131 misc/util.c:68 >+msgid "yY" >+msgstr "cC" >+ >+#: e2fsck/util.c:132 >+msgid "nN" >+msgstr "kK" >+ >+#: e2fsck/util.c:146 >+msgid "<y>" >+msgstr "<c>" >+ >+#: e2fsck/util.c:148 >+msgid "<n>" >+msgstr "<k>" >+ >+#: e2fsck/util.c:150 >+msgid " (y/n)" >+msgstr " (c/k)" >+ >+#: e2fsck/util.c:165 >+msgid "cancelled!\n" >+msgstr "bá» thôi !\n" >+ >+#: e2fsck/util.c:180 >+msgid "yes\n" >+msgstr "có\n" >+ >+#: e2fsck/util.c:182 >+msgid "no\n" >+msgstr "không\n" >+ >+#: e2fsck/util.c:192 >+#, c-format >+msgid "" >+"%s? no\n" >+"\n" >+msgstr "" >+"%s? không\n" >+"\n" >+ >+#: e2fsck/util.c:196 >+#, c-format >+msgid "" >+"%s? yes\n" >+"\n" >+msgstr "" >+"%s? có\n" >+"\n" >+ >+#: e2fsck/util.c:200 >+msgid "yes" >+msgstr "có" >+ >+#: e2fsck/util.c:200 >+msgid "no" >+msgstr "không" >+ >+#: e2fsck/util.c:213 >+#, c-format >+msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s" >+msgstr "e2fsck_read_bitmaps: khá»i sÆ¡ Äá» bit cấm cho %s" >+ >+#: e2fsck/util.c:218 >+msgid "reading inode and block bitmaps" >+msgstr "Äang Äá»c sÆ¡ Äá» bit cả nút inode lẫn khá»i" >+ >+#: e2fsck/util.c:223 >+#, c-format >+msgid "while retrying to read bitmaps for %s" >+msgstr "trong khi cá» gắng Äá»c sÆ¡ Äá» bit cho %s" >+ >+#: e2fsck/util.c:235 >+msgid "writing block bitmaps" >+msgstr "Äang ghi sÆ¡ Äá» bit khá»i" >+ >+#: e2fsck/util.c:240 >+#, c-format >+msgid "while retrying to write block bitmaps for %s" >+msgstr "trong khi thá» lại ghi sÆ¡ Äá» bit khá»i cho %s" >+ >+#: e2fsck/util.c:247 >+msgid "writing inode bitmaps" >+msgstr "Äang ghi sÆ¡ Äá» bit nút inode" >+ >+#: e2fsck/util.c:252 >+#, c-format >+msgid "while retrying to write inode bitmaps for %s" >+msgstr "trong khi thá» lại ghi sÆ¡ Äá» bit nút inode cho %s" >+ >+#: e2fsck/util.c:265 >+#, c-format >+msgid "" >+"\n" >+"\n" >+"%s: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.\n" >+"\t(i.e., without -a or -p options)\n" >+msgstr "" >+"\n" >+"\n" >+"%s: Sá»° MÃU THUẪN BẤT NGá» : HÃY Tá»° CHẠY fsck.\n" >+"\t(tức là không có tùy chá»n « -a » hay « -p »).\n" >+ >+#: e2fsck/util.c:330 >+#, c-format >+msgid "Memory used: %dk/%dk (%dk/%dk), " >+msgstr "Bá» nhá» Äã chiếm: %dk/%dk (%dk/%dk), " >+ >+#: e2fsck/util.c:334 >+#, c-format >+msgid "Memory used: %d, " >+msgstr "Bá» nhá» Äã chiếm: %d, " >+ >+#: e2fsck/util.c:340 >+#, c-format >+msgid "time: %5.2f/%5.2f/%5.2f\n" >+msgstr "thá»i gian: %5.2f/%5.2f/%5.2f\n" >+ >+#: e2fsck/util.c:345 >+#, c-format >+msgid "elapsed time: %6.3f\n" >+msgstr "thá»i gian Äã qua: %6.3f\n" >+ >+#: e2fsck/util.c:359 >+#, c-format >+msgid "while reading inode %ld in %s" >+msgstr "trong khi Äá»c nút inode %ld trong %s" >+ >+#: e2fsck/util.c:373 e2fsck/util.c:386 >+#, c-format >+msgid "while writing inode %ld in %s" >+msgstr "trong khi ghi nút inode %ld trong %s" >+ >+#: misc/badblocks.c:60 >+msgid "done \n" >+msgstr "Äã xong \n" >+ >+#: misc/badblocks.c:78 >+#, c-format >+msgid "" >+"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n" >+" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n" >+" device [last_block [start_block]]\n" >+msgstr "" >+"Cách sá» dụng: %s [-b cỡ_khá»i] [-i táºp_tin_nháºp] [-o táºp_tin_xuất] [-svwnf]\n" >+" [-c các_khá»i_cùng_lúc] [-p sá»_lần_qua] [-t mẫu_thá» [-t mẫu_thá» [...]]]\n" >+" thiết_bá» [khá»i_cuá»i [khá»i_Äầu]]\n" >+ >+#: misc/badblocks.c:225 >+msgid "Testing with random pattern: " >+msgstr "Äang thá» ra bằng mẫu ngẫu nhiên: " >+ >+#: misc/badblocks.c:243 >+msgid "Testing with pattern 0x" >+msgstr "Äang thá» ra bằng mẫu 0x" >+ >+#: misc/badblocks.c:268 misc/badblocks.c:297 >+msgid "during seek" >+msgstr "trong khi tìm nÆ¡i" >+ >+#: misc/badblocks.c:275 >+#, c-format >+msgid "Weird value (%ld) in do_read\n" >+msgstr "Giá trá» lạ (%ld) trong viá»c Äá»c « do_read »\n" >+ >+#: misc/badblocks.c:317 >+msgid "during ext2fs_sync_device" >+msgstr "trong khi Äá»ng bá» hoá thiết bỠ« ext2fs_sync_device »" >+ >+#: misc/badblocks.c:333 misc/badblocks.c:571 >+msgid "while beginning bad block list iteration" >+msgstr "trong khi bắt Äầu lặp lại danh sách các khá»i há»ng" >+ >+#: misc/badblocks.c:347 misc/badblocks.c:437 misc/badblocks.c:581 >+msgid "while allocating buffers" >+msgstr "trong khi cấp phát bá» Äá»m" >+ >+#: misc/badblocks.c:351 >+#, c-format >+msgid "Checking blocks %lu to %lu\n" >+msgstr "Äang kiá»m tra khá»i trong phạm vá» %lu Äến %lu\n" >+ >+#: misc/badblocks.c:355 >+msgid "Checking for bad blocks in read-only mode\n" >+msgstr "Äang kiá»m tra tìm khá»i há»ng trong chế Äá» chá» Äá»c\n" >+ >+#: misc/badblocks.c:364 >+msgid "Checking for bad blocks (read-only test): " >+msgstr "Äang kiá»m tra tìm khá»i há»ng (thá» ra chá» Äá»c): " >+ >+#: misc/badblocks.c:444 >+msgid "Checking for bad blocks in read-write mode\n" >+msgstr "Äang kiá»m tra tìm khá»i há»ng trong chế Äá» Äá»c-ghi\n" >+ >+#: misc/badblocks.c:446 misc/badblocks.c:594 >+#, c-format >+msgid "From block %lu to %lu\n" >+msgstr "Phạm vá» khá»i %lu Äến %lu\n" >+ >+#: misc/badblocks.c:497 >+msgid "Reading and comparing: " >+msgstr "Äang Äá»c và so sánh: " >+ >+#: misc/badblocks.c:593 >+msgid "Checking for bad blocks in non-destructive read-write mode\n" >+msgstr "Äang kiá»m tra tìm khá»i há»ng trong chế Äá» Äá»c-ghi không hủy\n" >+ >+#: misc/badblocks.c:597 >+msgid "Checking for bad blocks (non-destructive read-write test)\n" >+msgstr "Äang kiá»m tra tìm khá»i há»ng (thá» ra Äá»c-ghi không hủy)\n" >+ >+#: misc/badblocks.c:604 >+msgid "" >+"\n" >+"Interrupt caught, cleaning up\n" >+msgstr "" >+"\n" >+"Má»i bắt tÃn hiá»u ngắt, Äang là m sạch\n" >+ >+#: misc/badblocks.c:674 >+#, c-format >+msgid "during test data write, block %lu" >+msgstr "trong khi thá» ra ghi dữ liá»u, khá»i %lu" >+ >+#: misc/badblocks.c:784 misc/util.c:156 >+#, c-format >+msgid "%s is mounted; " >+msgstr "%s Äã Äược gắn kết; " >+ >+#: misc/badblocks.c:786 >+msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n" >+msgstr "" >+"tùy chá»n khá»i há»ng (badblocks) vẫn bỠép buá»c.\n" >+"Mong </etc/mtab> là không Äúng.\n" >+ >+#: misc/badblocks.c:791 >+msgid "it's not safe to run badblocks!\n" >+msgstr "Viá»c chạy tùy chá»n khá»i há»ng (badblocks) là không an toà n !\n" >+ >+#: misc/badblocks.c:796 misc/util.c:167 >+#, c-format >+msgid "%s is apparently in use by the system; " >+msgstr "Hình nhÆ° %s Äang bá» há» thá»ng dùng; " >+ >+#: misc/badblocks.c:799 >+msgid "badblocks forced anyway.\n" >+msgstr "tùy chá»n khá»i há»ng (badblocks) vẫn bỠép buá»c.\n" >+ >+#: misc/badblocks.c:861 >+#, c-format >+msgid "bad block size - %s" >+msgstr "kÃch cỡ khá»i há»ng â %s" >+ >+#: misc/badblocks.c:918 >+#, c-format >+msgid "can't allocate memory for test_pattern - %s" >+msgstr "không thá» cấp phát bá» nhá» cho mẫu thá» (test_pattern) â %s" >+ >+#: misc/badblocks.c:932 >+#, c-format >+msgid "invalid test_pattern: %s\n" >+msgstr "mẫu thá» (test_pattern) không hợp lá»: %s\n" >+ >+#: misc/badblocks.c:948 >+msgid "Maximum of one test_pattern may be specified in read-only mode" >+msgstr "Trong chế Äá» chá» Äá»c, có thá» xác Äá»nh tá»i Äa má»t mẫu thá» (test_pattern) thôi" >+ >+#: misc/badblocks.c:954 >+msgid "Random test_pattern is not allowed in read-only mode" >+msgstr "Không cho phẹp mẫu thá» (test_pattern) ngẫu nhiên trong chế Äá» chá» Äá»c" >+ >+#: misc/badblocks.c:968 >+msgid "" >+"Couldn't determine device size; you must specify\n" >+"the size manually\n" >+msgstr "" >+"Không thá» quyết Äá»nh kÃch cỡ của thiết bá»;\n" >+"bạn phải tá»± xác Äá»nh kÃch cỡ Äó.\n" >+ >+#: misc/badblocks.c:974 >+msgid "while trying to determine device size" >+msgstr "trong khi cá» gắng quyết Äá»nh kÃch cỡ của thiết bá»" >+ >+#: misc/badblocks.c:980 misc/mke2fs.c:1155 >+#, c-format >+msgid "invalid blocks count - %s" >+msgstr "sá» Äếm khá»i không hợp lá» â %s" >+ >+#: misc/badblocks.c:989 >+#, c-format >+msgid "invalid starting block - %s" >+msgstr "khá»i Äầu không hợp lá» â %s" >+ >+#: misc/badblocks.c:995 >+#, c-format >+msgid "invalid blocks range: %lu-%lu" >+msgstr "phạm vá» khá»i không hợp lá»: %lu - %lu" >+ >+#: misc/badblocks.c:1050 >+msgid "while creating in-memory bad blocks list" >+msgstr "trong khi tạo danh sách các khá»i há»ng trong bá» nhá»" >+ >+#: misc/badblocks.c:1065 >+msgid "while adding to in-memory bad block list" >+msgstr "trong khi thêm và o danh sách các khá»i há»ng trong bá» nhá»" >+ >+#: misc/badblocks.c:1089 >+#, c-format >+msgid "Pass completed, %u bad blocks found.\n" >+msgstr "Má»i qua xong, tìm thấy %u khá»i há»ng.\n" >+ >+#: misc/chattr.c:87 >+#, c-format >+msgid "Usage: %s [-RV] [-+=AacDdijsSu] [-v version] files...\n" >+msgstr "Cách sá» dụng: %s [-RV] [-+=AacDdijsSu] [-v phiên_bản] táºp_tin...\n" >+ >+#: misc/chattr.c:148 >+#, c-format >+msgid "bad version - %s\n" >+msgstr "phiên bản sai â %s\n" >+ >+#: misc/chattr.c:192 misc/lsattr.c:113 >+#, c-format >+msgid "while trying to stat %s" >+msgstr "trong khi cá» gắng lấy các thông tin vá» %s" >+ >+#: misc/chattr.c:209 misc/chattr.c:225 >+#, c-format >+msgid "Flags of %s set as " >+msgstr "Các cá» của %s Äược Äặt thà nh " >+ >+#: misc/chattr.c:218 >+#, c-format >+msgid "while reading flags on %s" >+msgstr "trong khi Äá»c các cá» trên %s" >+ >+#: misc/chattr.c:233 >+#, c-format >+msgid "while setting flags on %s" >+msgstr "trong khi Äặt các cá» trên %s" >+ >+#: misc/chattr.c:238 >+#, c-format >+msgid "Version of %s set as %lu\n" >+msgstr "Phiên bản %s Äược Äặt thà nh %lu\n" >+ >+#: misc/chattr.c:241 >+#, c-format >+msgid "while setting version on %s" >+msgstr "trong khi Äặt phiên bản trên %s" >+ >+#: misc/chattr.c:255 >+msgid "Couldn't allocate path variable in chattr_dir_proc" >+msgstr "Không thá» cấp phát biến ÄÆ°á»ng dẫn trong chattr_dir_proc" >+ >+#: misc/chattr.c:291 >+msgid "= is incompatible with - and +\n" >+msgstr "= không tÆ°Æ¡ng thÃch vá»i - và +\n" >+ >+#: misc/chattr.c:299 >+msgid "Must use '-v', =, - or +\n" >+msgstr "Phải dùng '-v', =, - hay +\n" >+ >+#: misc/dumpe2fs.c:53 >+#, c-format >+msgid "Usage: %s [-bfhixV] [-ob superblock] [-oB blocksize] device\n" >+msgstr "Cách sá» dụng: %s [-bfhixV] [-ob siêu_khá»i] [-oB cỡ_khá»i] thiết_bá»\n" >+ >+#: misc/dumpe2fs.c:131 >+#, c-format >+msgid "Group %lu: (Blocks " >+msgstr "Nhóm %lu: (Khá»i " >+ >+#: misc/dumpe2fs.c:136 >+#, c-format >+msgid " %s superblock at " >+msgstr " %s siêu khá»i tại " >+ >+#: misc/dumpe2fs.c:137 >+msgid "Primary" >+msgstr "ChÃnh" >+ >+#: misc/dumpe2fs.c:137 >+msgid "Backup" >+msgstr "Dá»± trữ" >+ >+#: misc/dumpe2fs.c:141 >+#, c-format >+msgid ", Group descriptors at " >+msgstr ", Mô tả nhóm tại " >+ >+#: misc/dumpe2fs.c:145 >+#, c-format >+msgid "" >+"\n" >+" Reserved GDT blocks at " >+msgstr "" >+"\n" >+" Các khá»i GDT Äã dà nh riêng tại " >+ >+#: misc/dumpe2fs.c:152 >+#, c-format >+msgid " Group descriptor at " >+msgstr " Mô tả nhóm tại " >+ >+#: misc/dumpe2fs.c:158 >+msgid " Block bitmap at " >+msgstr " SÆ¡ Äá» bit khá»i tại " >+ >+#: misc/dumpe2fs.c:163 >+msgid ", Inode bitmap at " >+msgstr ", SÆ¡ Äá» nút inode tại " >+ >+#: misc/dumpe2fs.c:168 >+msgid "" >+"\n" >+" Inode table at " >+msgstr "" >+"\n" >+" Bảng nút inode tại " >+ >+#: misc/dumpe2fs.c:175 >+#, c-format >+msgid "" >+"\n" >+" %d free blocks, %d free inodes, %d directories\n" >+msgstr "" >+"\n" >+" %d khá»i rảnh, %d inode rảnh, %d thÆ° mục\n" >+ >+#: misc/dumpe2fs.c:181 >+msgid " Free blocks: " >+msgstr " Khá»i rảnh: " >+ >+#: misc/dumpe2fs.c:189 >+msgid " Free inodes: " >+msgstr " Inode rảnh: " >+ >+#: misc/dumpe2fs.c:215 >+msgid "while printing bad block list" >+msgstr "trong khi in ra danh sách các khá»i há»ng" >+ >+#: misc/dumpe2fs.c:221 >+#, c-format >+msgid "Bad blocks: %d" >+msgstr "Khá»i há»ng: %d" >+ >+#: misc/dumpe2fs.c:243 misc/tune2fs.c:232 >+msgid "while reading journal inode" >+msgstr "trong khi Äá»c nút inode nháºt ký" >+ >+#: misc/dumpe2fs.c:246 >+msgid "Journal size: " >+msgstr "KÃch cỡ nhất ký: " >+ >+#: misc/dumpe2fs.c:265 misc/tune2fs.c:154 >+msgid "while reading journal superblock" >+msgstr "trong khi Äá»c siêu khá»i nháºt ký" >+ >+#: misc/dumpe2fs.c:273 >+msgid "Couldn't find journal superblock magic numbers" >+msgstr "Không tìm thấy các sá» ma thuáºt siêu khá»i nháºt ký" >+ >+#: misc/dumpe2fs.c:277 >+#, c-format >+msgid "" >+"\n" >+"Journal block size: %u\n" >+"Journal length: %u\n" >+"Journal first block: %u\n" >+"Journal sequence: 0x%08x\n" >+"Journal start: %u\n" >+"Journal number of users: %lu\n" >+msgstr "" >+"\n" >+"KÃch cỡ khá»i nháºt ký: \t%u\n" >+"Äá» dà i nháºt ký: \t\t%u\n" >+"Khá»i Äầu nháºt ký: \t\t%u\n" >+"Dãy nháºt ký: \t\t\t0x%08x\n" >+"Äầu nháºt ký: \t\t%u\n" >+"Sá» ngÆ°á»i dùng nháºt ký: \t%lu\n" >+ >+#: misc/dumpe2fs.c:290 >+#, c-format >+msgid "Journal users: %s\n" >+msgstr "Sá» ngÆ°á»i dùng nháºt ký: %s\n" >+ >+#: misc/dumpe2fs.c:345 misc/mke2fs.c:1099 >+#, c-format >+msgid "\tUsing %s\n" >+msgstr "\tDùng %s\n" >+ >+#: misc/dumpe2fs.c:371 misc/e2image.c:662 misc/tune2fs.c:779 resize/main.c:245 >+#, c-format >+msgid "Couldn't find valid filesystem superblock.\n" >+msgstr "Không tìm thấy siêu khá»i há» thá»ng táºp tin hợp lá».\n" >+ >+#: misc/dumpe2fs.c:382 >+#, c-format >+msgid "Note: This is a byte-swapped filesystem\n" >+msgstr "Ghi chú : Äây là há» thá»ng táºp tin Äã trao Äá»i byte\n" >+ >+#: misc/dumpe2fs.c:401 >+#, c-format >+msgid "" >+"\n" >+"%s: %s: error reading bitmaps: %s\n" >+msgstr "" >+"\n" >+"%s: %s: gặp lá»i khi Äá»c sÆ¡ Äá» bit: %s\n" >+ >+#: misc/e2image.c:50 >+#, c-format >+msgid "Usage: %s [-rsI] device image_file\n" >+msgstr "Cách sá» dụng: %s [-rsI] thiết_bá» táºp_tin_ảnh\n" >+ >+#: misc/e2image.c:62 >+msgid "Couldn't allocate header buffer\n" >+msgstr "Không thá» cấp phát bá» Äá»m phần Äầu\n" >+ >+#: misc/e2image.c:81 >+#, c-format >+msgid "short write (only %d bytes) for writing image header" >+msgstr "ghi ngắn (chá» %d byte) Äá» ghi phần Äầu ảnh" >+ >+#: misc/e2image.c:100 >+msgid "while writing superblock" >+msgstr "trong khi ghi siêu khá»i" >+ >+#: misc/e2image.c:108 >+msgid "while writing inode table" >+msgstr "trong khi ghi bảng nút inode" >+ >+#: misc/e2image.c:115 >+msgid "while writing block bitmap" >+msgstr "trong khi ghi sÆ¡ Äá» bit khá»i" >+ >+#: misc/e2image.c:122 >+msgid "while writing inode bitmap" >+msgstr "trong khi ghi sÆ¡ Äá» bit nút inode" >+ >+#: misc/e2label.c:57 >+#, c-format >+msgid "e2label: cannot open %s\n" >+msgstr "e2label: không thá» má» %s\n" >+ >+#: misc/e2label.c:62 >+#, c-format >+msgid "e2label: cannot seek to superblock\n" >+msgstr "e2label: không thá» tìm nÆ¡i tá»i siêu khá»i\n" >+ >+#: misc/e2label.c:67 >+#, c-format >+msgid "e2label: error reading superblock\n" >+msgstr "e2label: gặp lá»i khi Äá»c siêu khá»i\n" >+ >+#: misc/e2label.c:71 >+#, c-format >+msgid "e2label: not an ext2 filesystem\n" >+msgstr "e2label: không phải là há» thá»ng táºp tin kiá»u ext2\n" >+ >+#: misc/e2label.c:96 misc/tune2fs.c:885 >+#, c-format >+msgid "Warning: label too long, truncating.\n" >+msgstr "Cảnh báo : nhãn quá dà i nên Äang cắt ngắn.\n" >+ >+#: misc/e2label.c:99 >+#, c-format >+msgid "e2label: cannot seek to superblock again\n" >+msgstr "e2label: không thá» tìm nÆ¡i lại tá»i siêu khá»i\n" >+ >+#: misc/e2label.c:104 >+#, c-format >+msgid "e2label: error writing superblock\n" >+msgstr "e2label: gặp lá»i khi ghi siêu khá»i\n" >+ >+#: misc/e2label.c:116 misc/tune2fs.c:451 >+#, c-format >+msgid "Usage: e2label device [newlabel]\n" >+msgstr "Cách sá» dụng: e2label thiết_bá» [nhãn_má»i]\n" >+ >+#: misc/fsck.c:346 >+#, c-format >+msgid "WARNING: couldn't open %s: %s\n" >+msgstr "CẢNH BÃO : không thá» má» %s: %s\n" >+ >+#: misc/fsck.c:356 >+#, c-format >+msgid "WARNING: bad format on line %d of %s\n" >+msgstr "CẢNH BÃO : gặp dạng thức sai trên dòng %d trên %s\n" >+ >+#: misc/fsck.c:371 >+msgid "" >+"WARNING: Your /etc/fstab does not contain the fsck passno\n" >+"\tfield. I will kludge around things for you, but you\n" >+"\tshould fix your /etc/fstab file as soon as you can.\n" >+"\n" >+msgstr "" >+"CẢNH BÃO : </etc/fstab> của bạn không chứa trÆ°á»ng\n" >+"\tpassno fsck. Trình nà y sẽ là m quấy quá các viá»c, nhÆ°ng\n" >+"\tbạn nên sá»a chữa táºp tin </etc/fstab> cà ng sá»m cà ng có thá».\n" >+"\n" >+ >+#: misc/fsck.c:472 >+#, c-format >+msgid "fsck: %s: not found\n" >+msgstr "fsck: %s: không tìm thấy\n" >+ >+#: misc/fsck.c:585 >+#, c-format >+msgid "%s: wait: No more child process?!?\n" >+msgstr "%s: Äợi: không có tiến trình con nữa ?!?\n" >+ >+#: misc/fsck.c:607 >+#, c-format >+msgid "Warning... %s for device %s exited with signal %d.\n" >+msgstr "Cảnh báo... %s cho thiết bá» %s Äã thoát vá»i tÃn hiá»u %d.\n" >+ >+#: misc/fsck.c:613 >+#, c-format >+msgid "%s %s: status is %x, should never happen.\n" >+msgstr "%s %s: trạng thái là %x, không bao giá» nên xảy ra.\n" >+ >+#: misc/fsck.c:649 >+#, c-format >+msgid "Finished with %s (exit status %d)\n" >+msgstr "Äã xong vá»i %s (trạng thái thoát %d)\n" >+ >+#: misc/fsck.c:709 >+#, c-format >+msgid "%s: Error %d while executing fsck.%s for %s\n" >+msgstr "%s: Gặp lá»i %d trong khi thá»±c hiá»n fsck.%s cho %s\n" >+ >+#: misc/fsck.c:730 >+msgid "" >+"Either all or none of the filesystem types passed to -t must be prefixed\n" >+"with 'no' or '!'.\n" >+msgstr "" >+"Hoặc tất cả hoặc không có kiá»u há» thá»ng táºp tin Äược gá»i qua\n" >+"cho tùy chá»n « -t » phải có tiá»n tỠ« no » hay « ! ».\n" >+ >+#: misc/fsck.c:749 >+msgid "Couldn't allocate memory for filesystem types\n" >+msgstr "Không thá» cấp phát bá» nhá» cho kiá»u hế thá»ng táºp tin\n" >+ >+#: misc/fsck.c:889 >+#, c-format >+msgid "fsck: cannot check %s: fsck.%s not found\n" >+msgstr "fsck: không thá» kiá»m tra %s: fsck.%s không Äược tìm thấy\n" >+ >+#: misc/fsck.c:945 >+msgid "Checking all file systems.\n" >+msgstr "Äang kiá»m tra má»i há» thá»ng táºp tin.\n" >+ >+#: misc/fsck.c:1031 >+#, c-format >+msgid "--waiting-- (pass %d)\n" >+msgstr "--waiting-- (lần qua %d)\n" >+ >+#: misc/fsck.c:1051 >+msgid "Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n" >+msgstr "" >+"Cách sá» dụng: fsck [-ANPRTV] [ -C [ fd ] ] [-t kiá»u_FS]\n" >+"[tùy_chá»n_FS] [FS ...]\n" >+"(FS : há» thá»ng táºp tin)\n" >+ >+#: misc/fsck.c:1093 >+#, c-format >+msgid "%s: too many devices\n" >+msgstr "%s: quá nhiá»u thiết bá»\n" >+ >+#: misc/fsck.c:1126 misc/fsck.c:1212 >+#, c-format >+msgid "%s: too many arguments\n" >+msgstr "%s: quá nhiá»u Äá»i sá»\n" >+ >+#: misc/lsattr.c:73 >+#, c-format >+msgid "Usage: %s [-RVadlv] [files...]\n" >+msgstr "Cách sá» dụng: %s [-RVadlv] [táºp_tin...]\n" >+ >+#: misc/lsattr.c:83 >+#, c-format >+msgid "While reading flags on %s" >+msgstr "Trong khi Äá»c các cá» trên %s" >+ >+#: misc/lsattr.c:90 >+#, c-format >+msgid "While reading version on %s" >+msgstr "Trong khi Äá»c phiên bản trên %s" >+ >+#: misc/mke2fs.c:96 >+#, c-format >+msgid "" >+"Usage: %s [-c|-t|-l filename] [-b block-size] [-f fragment-size]\n" >+"\t[-i bytes-per-inode] [-j] [-J journal-options] [-N number-of-inodes]\n" >+"\t[-m reserved-blocks-percentage] [-o creator-os] [-g blocks-per-group]\n" >+"\t[-L volume-label] [-M last-mounted-directory] [-O feature[,...]]\n" >+"\t[-r fs-revision] [-R options] [-qvSV] device [blocks-count]\n" >+msgstr "" >+"Cách sá» dụng: %s [-c|-t|-l tên_táºp_tin] [-b cỡ_khá»i] [-f cỡ_Äoạn]\n" >+"\t[-i byte_má»i_inode] [-j] [-J tùy_chá»n_nháºt_ký] [-N sá»_inode]\n" >+"\t[-m sá»_phần_trÄm_khá»i_dà nh_riêng] [-o HÄH_tạo] [-g khá»i_má»i_nhóm]\n" >+"\t[-L nhãn_khá»i_tin] [-M thÆ°_mục_lắp_cuá»i] [-O tÃnh_nÄng[,...]]\n" >+"\t[-r bản_sá»a_Äá»i_FS] [-R tùy_chá»n] [-qvSV] thiết_bá» [sá»_Äếm_khá»i]\n" >+"(FS : há» thá»ng táºp tin)\n" >+ >+#: misc/mke2fs.c:195 >+#, c-format >+msgid "Running command: %s\n" >+msgstr "Äang chạy lá»nh: %s\n" >+ >+#: misc/mke2fs.c:199 >+#, c-format >+msgid "while trying to run '%s'" >+msgstr "trong khi cá» gắng chạy « %s »" >+ >+#: misc/mke2fs.c:206 >+msgid "while processing list of bad blocks from program" >+msgstr "trong khi xá» lý danh sách các khá»i há»ng từ chÆ°Æ¡ng trình" >+ >+#: misc/mke2fs.c:233 >+#, c-format >+msgid "Block %d in primary superblock/group descriptor area bad.\n" >+msgstr "Khá»i %d trong vùng mô tả nhóm/siêu khá»i chÃnh bá» há»ng.\n" >+ >+#: misc/mke2fs.c:235 >+#, c-format >+msgid "Blocks %u through %d must be good in order to build a filesystem.\n" >+msgstr "" >+"Các khá»i trong phạm vá» %u Äến %d phải là tá»t\n" >+"Äá» xây dá»±ng Äược há» thá»ng táºp tin.\n" >+ >+#: misc/mke2fs.c:238 >+msgid "Aborting....\n" >+msgstr "Hủy bá»...\n" >+ >+#: misc/mke2fs.c:258 >+#, c-format >+msgid "" >+"Warning: the backup superblock/group descriptors at block %u contain\n" >+"\tbad blocks.\n" >+"\n" >+msgstr "" >+"Cảnh báo : các mô tả nhóm/siêu khá»i dá»± trữ tại khá»i %u chứa khá»i há»ng.\n" >+"\n" >+ >+#: misc/mke2fs.c:276 >+msgid "while marking bad blocks as used" >+msgstr "trong khi nhãn các khá»i há»ng nhÆ° là Äã Äược dùng" >+ >+#: misc/mke2fs.c:334 >+msgid "done \n" >+msgstr "Äã xong \n" >+ >+#: misc/mke2fs.c:369 >+msgid "while allocating zeroizing buffer" >+msgstr "trong khi cấp phát bá» Äếm là m sá» không" >+ >+#: misc/mke2fs.c:410 >+msgid "Writing inode tables: " >+msgstr "Äang ghi các bảng nút inode: " >+ >+#: misc/mke2fs.c:421 >+#, c-format >+msgid "" >+"\n" >+"Could not write %d blocks in inode table starting at %u: %s\n" >+msgstr "" >+"\n" >+"Không thá» ghi %d khá»i trong bảng nút inode, bắt Äầu tại %u: %s\n" >+ >+#: misc/mke2fs.c:444 >+msgid "while creating root dir" >+msgstr "trong khi tạo thÆ° mục gá»c" >+ >+#: misc/mke2fs.c:451 >+msgid "while reading root inode" >+msgstr "trong khi Äá»c nút inode gá»c" >+ >+#: misc/mke2fs.c:460 >+msgid "while setting root inode ownership" >+msgstr "trong khi Äặt quyá»n sá» hữu nút inode gá»c" >+ >+#: misc/mke2fs.c:478 >+msgid "while creating /lost+found" >+msgstr "trong khi tạo /mất+tìm" >+ >+#: misc/mke2fs.c:485 >+msgid "while looking up /lost+found" >+msgstr "trong khi trao tìm /mất+tìm" >+ >+#: misc/mke2fs.c:495 >+msgid "while expanding /lost+found" >+msgstr "trong khi bung /mất+tìm" >+ >+#: misc/mke2fs.c:511 >+msgid "while setting bad block inode" >+msgstr "trong khi Äặt nút inode khá»i há»ng" >+ >+#: misc/mke2fs.c:543 >+#, c-format >+msgid "Out of memory erasing sectors %d-%d\n" >+msgstr "Hết bá» nhá» nên Äang xoá bá» các rãnh ghi trong phạm vá» %d Äến %d\n" >+ >+#: misc/mke2fs.c:553 >+#, c-format >+msgid "Warning: could not read block 0: %s\n" >+msgstr "Cảnh báo : không thá» Äá»c khá»i 0: %s\n" >+ >+#: misc/mke2fs.c:569 >+#, c-format >+msgid "Warning: could not erase sector %d: %s\n" >+msgstr "Cảnh báo : không thá» xoá bá» rãnh ghi %d: %s\n" >+ >+#: misc/mke2fs.c:585 >+msgid "while initializing journal superblock" >+msgstr "trong khi sá» khá»i siêu khá»i nháºt ký" >+ >+#: misc/mke2fs.c:591 >+msgid "Zeroing journal device: " >+msgstr "Äang là m sá» không thiết bá» nháºt ký: " >+ >+#: misc/mke2fs.c:598 >+#, c-format >+msgid "while zeroing journal device (block %u, count %d)" >+msgstr "trong khi là m sá» không thiết bá» nháºt ký (khá»i %u, sá» Äếm %d)" >+ >+#: misc/mke2fs.c:609 >+msgid "while writing journal superblock" >+msgstr "trong khi ghi siêu khá»i nháºt ký" >+ >+#: misc/mke2fs.c:625 >+#, c-format >+msgid "" >+"warning: %u blocks unused.\n" >+"\n" >+msgstr "" >+"cảnh báo : %u khá»i chÆ°a dùng.\n" >+"\n" >+ >+#: misc/mke2fs.c:630 >+#, c-format >+msgid "Filesystem label=%s\n" >+msgstr "Nhãn há» thá»ng táºp tin=%s\n" >+ >+#: misc/mke2fs.c:631 >+msgid "OS type: " >+msgstr "Kiá»u HÄH: " >+ >+#: misc/mke2fs.c:636 >+#, c-format >+msgid "Block size=%u (log=%u)\n" >+msgstr "Cỡ khá»i=%u (bản ghi=%u)\n" >+ >+#: misc/mke2fs.c:638 >+#, c-format >+msgid "Fragment size=%u (log=%u)\n" >+msgstr "Cỡ Äoạn=%u (bản ghi=%u)\n" >+ >+#: misc/mke2fs.c:640 >+#, c-format >+msgid "%u inodes, %u blocks\n" >+msgstr "%u inode, %u khá»i\n" >+ >+#: misc/mke2fs.c:642 >+#, c-format >+msgid "%u blocks (%2.2f%%) reserved for the super user\n" >+msgstr "%u khá»i (%2.2f%%) Äược dà nh riêng cho siêu ngÆ°á»i dùng\n" >+ >+#: misc/mke2fs.c:645 >+#, c-format >+msgid "First data block=%u\n" >+msgstr "Khá»i dữ liá»u Äầu=%u\n" >+ >+#: misc/mke2fs.c:647 >+#, c-format >+msgid "Maximum filesystem blocks=%lu\n" >+msgstr "Khá»i há» thá»ng táºp tin tá»i Äa=%lu\n" >+ >+#: misc/mke2fs.c:652 >+#, c-format >+msgid "%u block groups\n" >+msgstr "%u nhóm khá»i\n" >+ >+#: misc/mke2fs.c:654 >+#, c-format >+msgid "%u block group\n" >+msgstr "%u nhóm khá»i\n" >+ >+#: misc/mke2fs.c:655 >+#, c-format >+msgid "%u blocks per group, %u fragments per group\n" >+msgstr "%u khá»i trên má»i nhóm, %u Äoạn trên má»i nhóm\n" >+ >+#: misc/mke2fs.c:657 >+#, c-format >+msgid "%u inodes per group\n" >+msgstr "%u nút inode trên má»i nhóm\n" >+ >+#: misc/mke2fs.c:664 >+#, c-format >+msgid "Superblock backups stored on blocks: " >+msgstr "Siêu khá»i dá»± trữ Äược cất giữ trên khá»i: " >+ >+#: misc/mke2fs.c:720 >+#, c-format >+msgid "Couldn't allocate memory to parse options!\n" >+msgstr "Không thá» cấp phát bá» nhá» Äá» phân tách tùy chá»n !\n" >+ >+#: misc/mke2fs.c:744 >+#, c-format >+msgid "Invalid stride parameter: %s\n" >+msgstr "Tham sá» stride không hợp lá»: %s\n" >+ >+#: misc/mke2fs.c:765 >+#, c-format >+msgid "Invalid resize parameter: %s\n" >+msgstr "Tham sá» thay Äá»i kÃch cỡ không hợp lá»: %s\n" >+ >+#: misc/mke2fs.c:772 >+#, c-format >+msgid "The resize maximum must be greater than the filesystem size.\n" >+msgstr "Sá» thay Äá»i kÃch cỡ tá»i Äa phải là lá»n hÆ¡n kÃch cỡ của há» thá»ng táºp tin.\n" >+ >+#: misc/mke2fs.c:803 >+#, c-format >+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" >+"\tstride=<stride length in blocks>\n" >+"\tresize=<resize maximum size in blocks>\n" >+"\n" >+msgstr "" >+"\n" >+"Tùy chá»n sai Äã Äược xác Äá»nh.\n" >+"\n" >+"Các tùy chá»n Äã má» rá»ng có Äá»nh giá»i bằng dấu phẩy, và có thá» chấp nháºn\n" >+"Äá»i sá» mà Äược ngụ ý bằng dấu bằng « = ».\n" >+"\n" >+"Tùy chá»n Äã má» rá»ng hợp lá»:\n" >+"\tstride=<Äá» dà i stride theo khá»i>\n" >+"\tresize=<kÃch cỡ thay Äá»i kÃch cỡ tá»i Äa theo khá»i>\n" >+"\n" >+ >+#: misc/mke2fs.c:828 >+#, c-format >+msgid "" >+"Syntax error in mke2fs config file (%s, line #%d)\n" >+"\t%s\n" >+msgstr "" >+"Gặp lá»i cú pháp trong táºp tin cấu hình mke2fs (%s, dòng sá» %d)\n" >+"\t%s\n" >+ >+#: misc/mke2fs.c:841 misc/tune2fs.c:303 >+#, c-format >+msgid "Invalid filesystem option set: %s\n" >+msgstr "Có Äặt tùy chá»n há» thá»ng táºp tin không hợp lá»: %s\n" >+ >+#: misc/mke2fs.c:938 >+#, c-format >+msgid "invalid block size - %s" >+msgstr "Cỡ khá»i không hợp lá» â %s" >+ >+#: misc/mke2fs.c:942 >+#, c-format >+msgid "Warning: blocksize %d not usable on most systems.\n" >+msgstr "Cảnh báo : kÃch cỡ khá»i %d vô Ãch trên phần lá»n há» thá»ng.\n" >+ >+#: misc/mke2fs.c:959 >+#, c-format >+msgid "invalid fragment size - %s" >+msgstr "KÃch cỡ Äoạn không hợp lá» â %s" >+ >+#: misc/mke2fs.c:965 >+#, c-format >+msgid "Warning: fragments not supported. Ignoring -f option\n" >+msgstr "Cảnh báo : không há» trợ Äoạn nên bá» qua tùy chá»n « -f »\n" >+ >+#: misc/mke2fs.c:972 >+msgid "Illegal number for blocks per group" >+msgstr "Sá» cấm cho sá» khá»i trên má»i nhóm" >+ >+#: misc/mke2fs.c:977 >+msgid "blocks per group must be multiple of 8" >+msgstr "sá» khá»i trên má»i nhóm phải là bá»i sá» cho 8" >+ >+#: misc/mke2fs.c:987 >+#, c-format >+msgid "invalid inode ratio %s (min %d/max %d)" >+msgstr "Tá»· lá» nút inode không hợp lá» %s (thiá»u %d/Äa %d)" >+ >+#: misc/mke2fs.c:1004 >+msgid "in malloc for bad_blocks_filename" >+msgstr "" >+"trong hà m cấp phát bá» nhá» malloc cho tên táºp tin khá»i há»ng\n" >+"« bad_blocks_filename »" >+ >+#: misc/mke2fs.c:1013 >+#, c-format >+msgid "invalid reserved blocks percent - %s" >+msgstr "phần trÄm khá»i Äược dà nh riêng không hợp lá» â %s" >+ >+#: misc/mke2fs.c:1031 >+#, c-format >+msgid "bad revision level - %s" >+msgstr "cấp bản sá»a Äá»i sai â %s" >+ >+#: misc/mke2fs.c:1044 >+#, c-format >+msgid "invalid inode size - %s" >+msgstr "kÃch cỡ nút inode không hợp lá» â %s" >+ >+#: misc/mke2fs.c:1065 >+#, c-format >+msgid "bad num inodes - %s" >+msgstr "sá» (num) nút inode sai â %s" >+ >+#: misc/mke2fs.c:1123 misc/mke2fs.c:1588 >+#, c-format >+msgid "while trying to open journal device %s\n" >+msgstr "trong khi cá» gắng má» thiết bá» nháºt ký %s\n" >+ >+#: misc/mke2fs.c:1129 >+#, c-format >+msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n" >+msgstr "KÃch cỡ của thiết bá» nháºt ký (%d) có nhá» hÆ¡n kÃch cỡ tá»i thiá»u là %d\n" >+ >+#: misc/mke2fs.c:1143 >+#, c-format >+msgid "%d-byte blocks too big for system (max %d)" >+msgstr "Khá»i %d-byte quá lá»n Äá»i vá»i há» thá»ng (tá»i Äa %d)" >+ >+#: misc/mke2fs.c:1147 >+#, c-format >+msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n" >+msgstr "" >+"Cảnh báo : khá»i %d-byte quá lá»n Äá»i vá»i há» thá»ng (tá»i Äa %d)\n" >+"nên bá» buá»c tiếp tục\n" >+ >+#: misc/mke2fs.c:1165 >+msgid "filesystem" >+msgstr "há» thá»ng táºp tin" >+ >+#: misc/mke2fs.c:1188 resize/main.c:279 >+msgid "while trying to determine filesystem size" >+msgstr "trong khi cá» gắng quyết Äá»nh kÃch cỡ của há» thá»ng táºp tin" >+ >+#: misc/mke2fs.c:1194 >+msgid "" >+"Couldn't determine device size; you must specify\n" >+"the size of the filesystem\n" >+msgstr "" >+"Không thá» quyết Äá»nh kÃch cỡ của thiết bá»;\n" >+"bạn phải xác Äá»nh kÃch cỡ của há» thá»ng táºp tin\n" >+ >+#: misc/mke2fs.c:1201 >+msgid "" >+"Device size reported to be zero. Invalid partition specified, or\n" >+"\tpartition table wasn't reread after running fdisk, due to\n" >+"\ta modified partition being busy and in use. You may need to reboot\n" >+"\tto re-read your partition table.\n" >+msgstr "" >+"KÃch cỡ của thiết bá» Äược thông báo là sá» không.\n" >+"\tPhân vùng không hợp lá» Äược xác Äá»nh,\n" >+"\thoặc bảng phân vùng Äã không Äược Äá»c lại\n" >+"\tsau khi chạy tiến trình fdisk,\n" >+"\tdo phân vùng Äã sá»a Äá»i Äang báºn và Äang Äược dùng.\n" >+"Có lẽ bạn cần phải khá»i Äá»ng lại máy Äá» Äá»c lại bảng phân vùng.\n" >+ >+#: misc/mke2fs.c:1219 >+msgid "Filesystem larger than apparent device size." >+msgstr "Há» thá»ng táºp tin lá»n hÆ¡n kÃch cỡ thiết bá» biá»u kiến." >+ >+#: misc/mke2fs.c:1238 >+#, c-format >+msgid "Filesystem features not supported with revision 0 filesystems\n" >+msgstr "" >+"TÃnh nÄng há» thá»ng táºp tin không Äược há» trợ vá»i há» thá»ng táºp tin\n" >+"kiá»u bản sá»a Äá»i 0\n" >+ >+#: misc/mke2fs.c:1297 >+msgid "while trying to determine hardware sector size" >+msgstr "trong khi cá» gắng quyết Äá»nh kÃch cỡ của rãnh ghi phần cứng" >+ >+#: misc/mke2fs.c:1349 >+msgid "reserved online resize blocks not supported on non-sparse filesystem" >+msgstr "" >+"khá»i thay Äá»i kÃch cỡ trá»±c tuyến Äược dà nh riêng không Äược há» trợ\n" >+"trên há» thá»ng táºp tin không phải thÆ°a thá»t" >+ >+#: misc/mke2fs.c:1358 >+msgid "blocks per group count out of range" >+msgstr "sá» khá»i trên má»i nhóm á» ngoà i phạm vi" >+ >+#: misc/mke2fs.c:1365 >+msgid "" >+"Filesystem too large. No more than 2**31-1 blocks\n" >+"\t (8TB using a blocksize of 4k) are currently supported." >+msgstr "" >+"Há» thá»ng táºp tin quá lá»n. Hiá»n thá»i há» trợ kÃch cỡ\n" >+"\ttá»i Äa 2**31-1 (8 TB theo kÃch cỡ khá»i 4k)." >+ >+#: misc/mke2fs.c:1372 >+#, c-format >+msgid "" >+"\n" >+"Warning: some 2.4 kernels do not support blocksizes greater than 4096\n" >+"\tusing ext3. Use -b 4096 if this is an issue for you.\n" >+"\n" >+msgstr "" >+"\n" >+"Cảnh báo : má»t sá» hạt nhân phiên bản 2.4 không há» trợ kÃch cỡ khá»i\n" >+"\tlá»n hÆ¡n 4096, dùng ext3. Hãy dùng tùy chá»n « -b 4096 »\n" >+"\tnếu bặn gặp khó khÄn nà y.\n" >+"\n" >+ >+#: misc/mke2fs.c:1381 >+#, c-format >+msgid "invalid inode size %d (min %d/max %d)" >+msgstr "kÃch cỡ nút inode không hợp lá» %d (thiá»u %d/Äa %d)" >+ >+#: misc/mke2fs.c:1387 >+#, c-format >+msgid "Warning: %d-byte inodes not usable on most systems\n" >+msgstr "Cảnh báo : nút inode kiá»u %d-byte là vô Ãch trên phần lá»n há» thá»ng\n" >+ >+# Item in the main menu to select this package >+#: misc/mke2fs.c:1438 >+msgid "while setting up superblock" >+msgstr "trong khi thiết láºp siêu khá»i" >+ >+#: misc/mke2fs.c:1472 >+#, c-format >+msgid "unknown os - %s" >+msgstr "không biết há» Äiá»u hà nh â %s" >+ >+#: misc/mke2fs.c:1526 >+msgid "while trying to allocate filesystem tables" >+msgstr "trong khi cá» gắng cấp phát các bảng há» thá»ng táºp tin" >+ >+#: misc/mke2fs.c:1557 >+#, c-format >+msgid "while zeroing block %u at end of filesystem" >+msgstr "trong khi là m sá» không khá»i %u tại kết thúc của há» thá»ng táºp tin" >+ >+#: misc/mke2fs.c:1570 >+msgid "while reserving blocks for online resize" >+msgstr "trong khi dà nh riêng các khá»i Äá» thay Äá»i kÃch cỡ trá»±c tuyến" >+ >+#: misc/mke2fs.c:1581 misc/tune2fs.c:388 >+msgid "journal" >+msgstr "nháºt ký" >+ >+#: misc/mke2fs.c:1593 >+#, c-format >+msgid "Adding journal to device %s: " >+msgstr "Äang thêm nháºt ký và o thiết bá» %s: " >+ >+#: misc/mke2fs.c:1600 >+#, c-format >+msgid "" >+"\n" >+"\twhile trying to add journal to device %s" >+msgstr "" >+"\n" >+"trong khi cá» gắng thêm nháºt ký và o thiết bá» %s" >+ >+#: misc/mke2fs.c:1605 misc/mke2fs.c:1631 misc/tune2fs.c:416 misc/tune2fs.c:430 >+#, c-format >+msgid "done\n" >+msgstr "Äã xong\n" >+ >+#: misc/mke2fs.c:1619 >+#, c-format >+msgid "Creating journal (%d blocks): " >+msgstr "Äang tạo nháºt ký (%d khá»i): " >+ >+#: misc/mke2fs.c:1627 >+msgid "" >+"\n" >+"\twhile trying to create journal" >+msgstr "" >+"\n" >+"trong khi cá» gắng tạo nháºt ký" >+ >+#: misc/mke2fs.c:1636 >+#, c-format >+msgid "Writing superblocks and filesystem accounting information: " >+msgstr "Äang ghi siêu khá»i và thông tin kế toán há» thá»ng táºp tin: " >+ >+#: misc/mke2fs.c:1641 >+#, c-format >+msgid "" >+"\n" >+"Warning, had trouble writing out superblocks." >+msgstr "" >+"\n" >+"Cảnh báo : gặp khó khÄn trong viá»c ghi ra các siêu khá»i." >+ >+#: misc/mke2fs.c:1644 >+#, c-format >+msgid "" >+"done\n" >+"\n" >+msgstr "" >+"Äã xong\n" >+"\n" >+ >+#: misc/mklost+found.c:49 >+#, c-format >+msgid "Usage: mklost+found\n" >+msgstr "Cách sá» dụng: mklost+found\n" >+ >+#: misc/tune2fs.c:78 >+msgid "Please run e2fsck on the filesystem.\n" >+msgstr "Hãy chạy tiến trình e2fsck trên há» thá»ng táºp tin Äó.\n" >+ >+#: misc/tune2fs.c:85 >+#, c-format >+msgid "" >+"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n" >+"\t[-i interval[d|m|w]] [-j] [-J journal_options]\n" >+"\t[-l] [-s sparse_flag] [-m reserved_blocks_percent]\n" >+"\t[-o [^]mount_options[,...]] [-r reserved_blocks_count]\n" >+"\t[-u user] [-C mount_count] [-L volume_label] [-M last_mounted_dir]\n" >+"\t[-O [^]feature[,...]] [-T last_check_time] [-U UUID] device\n" >+msgstr "" >+"Cách sá» dụng: %s [-c tá»ng_lắp_tá»i_Äa] [-e ứng_xá»_lá»i] [-g nhóm]\n" >+"\t[-i khoảng[d|m|w]] [-j] [-J tùy_chá»n_nháºt_ký]\n" >+"\t[-l] [-s cá»_thÆ°a_thá»t] [-m phần_trÄm_khá»i_dà nh_riêng]\n" >+"\t[-o [^]tùy_chá»n_lắp[,...]] [-r tá»ng_khá»i_dà nh_riêng]\n" >+"\t[-u ngÆ°á»i_dùng] [-C tá»ng_lắp] [-L nhãn_khá»i_tin] [-M thÆ°_mục_lắp_cuá»i_cùng]\n" >+"\t[-O [^]tÃnh_nÄng[,...]] [-T giá»_kiá»m_tra_cuá»i_cùng] [-U UUID] thiết_bá»\n" >+ >+#: misc/tune2fs.c:142 >+msgid "while trying to open external journal" >+msgstr "trong khi cá» gắng má» nháºt ký bên ngoà i" >+ >+#: misc/tune2fs.c:146 >+#, c-format >+msgid "%s is not a journal device.\n" >+msgstr "%s không phải là thiết bá» nháºt ký.\n" >+ >+#: misc/tune2fs.c:161 >+msgid "Journal superblock not found!\n" >+msgstr "Không tìm thấy siêu khá»i nháºt ký !\n" >+ >+#: misc/tune2fs.c:173 >+msgid "Filesystem's UUID not found on journal device.\n" >+msgstr "Không tìm thấy UUID của há» thá»ng táºp tin trên thiết bá» nháºt ký.\n" >+ >+#: misc/tune2fs.c:194 >+msgid "Journal NOT removed\n" >+msgstr "CHƯA gỡ bá» nháºt ký\n" >+ >+#: misc/tune2fs.c:200 >+msgid "Journal removed\n" >+msgstr "Nháºt ký Äã Äược gỡ bá»\n" >+ >+#: misc/tune2fs.c:239 >+msgid "while reading bitmaps" >+msgstr "trong khi Äá»c các sÆ¡ Äá» bit" >+ >+#: misc/tune2fs.c:246 >+msgid "while clearing journal inode" >+msgstr "trong khi xoá nút inode nháºt ký" >+ >+#: misc/tune2fs.c:257 >+msgid "while writing journal inode" >+msgstr "trong khi ghi nút inode nháºt ký" >+ >+#: misc/tune2fs.c:272 >+#, c-format >+msgid "Invalid mount option set: %s\n" >+msgstr "Tùy chá»n lắp không hợp lá» Äã Äược Äặt: %s\n" >+ >+#: misc/tune2fs.c:318 >+msgid "" >+"The has_journal flag may only be cleared when the filesystem is\n" >+"unmounted or mounted read-only.\n" >+msgstr "" >+"Cá» có nháºt ký (has_journal) có thá» Äược xoá\n" >+"chá» khi há» thá»ng táºp tin Äã Äược tháo gắn kết\n" >+"hay Äã Äược gắn kết má»t cách chá» Äá»c.\n" >+ >+#: misc/tune2fs.c:326 >+msgid "" >+"The needs_recovery flag is set. Please run e2fsck before clearing\n" >+"the has_journal flag.\n" >+msgstr "" >+"Cá» cần thiết phục há»i (needs_recovery) Äã Äược Äặt.\n" >+"Hãy chạy tiến trình e2fsck trÆ°á»c khi xoá cá» có nháºt ký (has_journal).\n" >+ >+#: misc/tune2fs.c:383 >+msgid "The filesystem already has a journal.\n" >+msgstr "Há» thá»ng táºp tin Äã có nháºt ký.\n" >+ >+#: misc/tune2fs.c:400 >+#, c-format >+msgid "" >+"\n" >+"\twhile trying to open journal on %s\n" >+msgstr "" >+"\n" >+"trong khi cá» gắng má» nháºt ký trên %s\n" >+ >+#: misc/tune2fs.c:404 >+#, c-format >+msgid "Creating journal on device %s: " >+msgstr "Äang tạo nháºt ký trên thiết bá» %s: " >+ >+#: misc/tune2fs.c:412 >+#, c-format >+msgid "while adding filesystem to journal on %s" >+msgstr "trong khi thêm há» thá»ng táºp tin và o nháºt ký trên %s" >+ >+#: misc/tune2fs.c:418 >+msgid "Creating journal inode: " >+msgstr "Äang tạo nút inode nháºt ký: " >+ >+#: misc/tune2fs.c:427 >+msgid "" >+"\n" >+"\twhile trying to create journal file" >+msgstr "" >+"\n" >+"trong khi cá» gắng tạo táºp tin nháºt ký" >+ >+#: misc/tune2fs.c:493 >+#, c-format >+msgid "Couldn't parse date/time specifier: %s" >+msgstr "Không thá» phân tách toán tá» ngà y/giá» : %s" >+ >+#: misc/tune2fs.c:515 misc/tune2fs.c:528 >+#, c-format >+msgid "bad mounts count - %s" >+msgstr "tá»ng lắp sai â %s" >+ >+#: misc/tune2fs.c:544 >+#, c-format >+msgid "bad error behavior - %s" >+msgstr "ứng xá» lá»i sai â %s" >+ >+#: misc/tune2fs.c:567 >+#, c-format >+msgid "bad gid/group name - %s" >+msgstr "GID/tên nhóom sai â %s" >+ >+#: misc/tune2fs.c:600 >+#, c-format >+msgid "bad interval - %s" >+msgstr "khoảng sai - %s" >+ >+#: misc/tune2fs.c:628 >+#, c-format >+msgid "bad reserved block ratio - %s" >+msgstr "tá»· lá» khá»i dà nh riêng sai â %s" >+ >+#: misc/tune2fs.c:643 >+msgid "-o may only be specified once" >+msgstr "có thá» xác Äá»nh tùy chá»n « -o » chá» má»t lần thôi" >+ >+#: misc/tune2fs.c:653 >+msgid "-O may only be specified once" >+msgstr "có thá» xác Äá»nh tùy chá»n « -O » chá» má»t lần thôi" >+ >+#: misc/tune2fs.c:663 >+#, c-format >+msgid "bad reserved blocks count - %s" >+msgstr "tá»ng khá»i dà nh riêng sai â %s" >+ >+#: misc/tune2fs.c:692 >+#, c-format >+msgid "bad uid/user name - %s" >+msgstr "UID/tên ngÆ°á»i dùng sai â %s" >+ >+#: misc/tune2fs.c:802 >+#, c-format >+msgid "Setting maximal mount count to %d\n" >+msgstr "Äang Äặt tá»ng lắp tá»i Äa thà nh %d\n" >+ >+#: misc/tune2fs.c:808 >+#, c-format >+msgid "Setting current mount count to %d\n" >+msgstr "Äang Äặt tá»ng lắp hiá»n thá»i thà nh %d\n" >+ >+#: misc/tune2fs.c:813 >+#, c-format >+msgid "Setting error behavior to %d\n" >+msgstr "Äang Äặt ứng xá» lá»i thà nh %d\n" >+ >+#: misc/tune2fs.c:818 >+#, c-format >+msgid "Setting reserved blocks gid to %lu\n" >+msgstr "Äang Äặt GID khá»i dà nh riêng thà nh %lu\n" >+ >+#: misc/tune2fs.c:823 >+#, c-format >+msgid "Setting interval between checks to %lu seconds\n" >+msgstr "Äang Äặt khoảng giữa hai lần kiá»m tra thà nh %lu giây\n" >+ >+#: misc/tune2fs.c:828 >+#, c-format >+msgid "Setting reserved blocks percentage to %g%% (%u blocks)\n" >+msgstr "Äang Äặt phần trÄm khá»i dà nh riêng thà nh %g%% (%u khá»i)\n" >+ >+#: misc/tune2fs.c:834 >+#, c-format >+msgid "reserved blocks count is too big (%lu)" >+msgstr "tông khá»i dà nh riêng là quá lá»n (%lu)" >+ >+#: misc/tune2fs.c:840 >+#, c-format >+msgid "Setting reserved blocks count to %lu\n" >+msgstr "Äang Äặt tá»ng khá»i dà nh riêng thà nh %lu\n" >+ >+#: misc/tune2fs.c:846 >+msgid "" >+"\n" >+"The filesystem already has sparse superblocks.\n" >+msgstr "" >+"\n" >+"Há» thá»ng táºp tin Äã có siêu khá»i thÆ°a thá»t.\n" >+ >+#: misc/tune2fs.c:853 >+#, c-format >+msgid "" >+"\n" >+"Sparse superblock flag set. %s" >+msgstr "" >+"\n" >+"Cá» siêu khá»i thÆ°a thá»t Äã Äược Äặt. %s" >+ >+#: misc/tune2fs.c:860 >+msgid "" >+"\n" >+"The filesystem already has sparse superblocks disabled.\n" >+msgstr "" >+"\n" >+"Há» thá»ng táºp tin Äã tắt khả nÄng siêu khá»i thÆ°a thá»t.\n" >+ >+#: misc/tune2fs.c:868 >+#, c-format >+msgid "" >+"\n" >+"Sparse superblock flag cleared. %s" >+msgstr "" >+"\n" >+"Cá» siêu khá»i thÆ°a thá»t Äã Äược xoá. %s" >+ >+#: misc/tune2fs.c:875 >+#, c-format >+msgid "Setting time filesystem last checked to %s\n" >+msgstr "Äang Äặt giá» kiá»m tra há» thá»ng táºp tin lần cuá»i cùng thà nh %s\n" >+ >+#: misc/tune2fs.c:881 >+#, c-format >+msgid "Setting reserved blocks uid to %lu\n" >+msgstr "Äang Äặt UID khá»i dà nh riêng thà nh %lu\n" >+ >+#: misc/tune2fs.c:914 >+msgid "Invalid UUID format\n" >+msgstr "Dạng thức UUID không hợp lá»\n" >+ >+#: misc/util.c:72 >+msgid "Proceed anyway? (y,n) " >+msgstr "Vẫn còn tiếp tục không? (c,k)" >+ >+#: misc/util.c:93 >+#, c-format >+msgid "Could not stat %s --- %s\n" >+msgstr "Không thá» lấy các thông tin vá» %s â %s\n" >+ >+#: misc/util.c:96 >+msgid "" >+"\n" >+"The device apparently does not exist; did you specify it correctly?\n" >+msgstr "" >+"\n" >+"Hình nhÆ° thiết bá» Äó không tá»n tại; bạn có xác Äá»nh Äúng nó chÆ°a?\n" >+ >+#: misc/util.c:107 >+#, c-format >+msgid "%s is not a block special device.\n" >+msgstr "%s không phải là thiết bá» Äặc biá»t khá»i.\n" >+ >+#: misc/util.c:136 >+#, c-format >+msgid "%s is entire device, not just one partition!\n" >+msgstr "%s là toà n bá» thiết bá», không phải chá» má»t phân vùng !\n" >+ >+#: misc/util.c:158 >+msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n" >+msgstr "Tiến trình mke2fs vẫn còn bỠép buá»c. Mong </etc/mtab> là không Äúng.\n" >+ >+#: misc/util.c:163 >+#, c-format >+msgid "will not make a %s here!\n" >+msgstr "sẽ không là m %s á» Äây !\n" >+ >+#: misc/util.c:170 >+msgid "mke2fs forced anyway.\n" >+msgstr "Tiến trình mke2fs vẫn còn bỠép buá»c.\n" >+ >+#: misc/util.c:186 >+msgid "Couldn't allocate memory to parse journal options!\n" >+msgstr "Không thá» cấp phát bá» nhá» Äá» phân tách các tùy chá»n nháºt ký !\n" >+ >+#: misc/util.c:228 >+msgid "" >+"\n" >+"Bad journal options specified.\n" >+"\n" >+"Journal options are separated by commas, and may take an argument which\n" >+"\tis set off by an equals ('=') sign.\n" >+"\n" >+"Valid journal options are:\n" >+"\tsize=<journal size in megabytes>\n" >+"\tdevice=<journal device>\n" >+"\n" >+"The journal size must be between 1024 and 102400 filesystem blocks.\n" >+"\n" >+msgstr "" >+"\n" >+"Tùy chá»n nháºt ký sai Äã Äược xác Äá»nh.\n" >+"\n" >+"Các tùy chá»n nháºt ký có Äá»nh giá»i bằng dấu phẩy, và có thá» chấp nháºn\n" >+"Äá»i sá» mà Äược ngụ ý bằng dấu bằng « = ».\n" >+"\n" >+"Tùy chá»n nháºt ký hợp lá»:\n" >+"\tsize=<kÃch cỡ nháºt ký theo MB>\n" >+"\tdevice=<thiết bá» nháºt ký>\n" >+"\n" >+"KÃch cỡ của nháºt ký phải nằm trong phạm vá»\n" >+"1024 Äến 102400 khá»i há» thá»ng táºp tin.\n" >+"\n" >+ >+#: misc/util.c:255 >+msgid "" >+"\n" >+"Filesystem too small for a journal\n" >+msgstr "" >+"\n" >+"Há» thá»ng táºp tin quá nhá» Äá»i vá»i nháºt ký\n" >+ >+#: misc/util.c:262 >+#, c-format >+msgid "" >+"\n" >+"The requested journal size is %d blocks; it must be\n" >+"between 1024 and 102400 blocks. Aborting.\n" >+msgstr "" >+"\n" >+"KÃch cỡ nháºt ký Äã yêu cầu là %d khá»i;\n" >+"nó phải nằm trong phạm vá» 1024 Äến 102400 khá»i\n" >+"nên hủy bá».\n" >+ >+#: misc/util.c:270 >+msgid "" >+"\n" >+"Journal size too big for filesystem.\n" >+msgstr "" >+"\n" >+"KÃch cỡ nháºt ký quá lá»n Äá»i vá»i há» thá»ng táºp tin.\n" >+ >+#: misc/util.c:294 >+#, c-format >+msgid "" >+"This filesystem will be automatically checked every %d mounts or\n" >+"%g days, whichever comes first. Use tune2fs -c or -i to override.\n" >+msgstr "" >+"Há» thá»ng táºp tin nà y sẽ Äược kiá»m tra tá»± Äá»ng má»i %d lần gắn kết\n" >+"hay má»i %g ngà y, Äiá»u nà o xảy ra trÆ°á»c. Hãy dùng tùy chá»n\n" >+"« tune2fs -c » hay « tune2fs -i » Äá» Äược quyá»n cao hÆ¡n.\n" >+ >+#: misc/uuidgen.c:30 >+#, c-format >+msgid "Usage: %s [-r] [-t]\n" >+msgstr "Cách sá» dụng: %s [-r] [-t]\n" >+ >+#: resize/extent.c:196 >+msgid "# Extent dump:\n" >+msgstr "# Äá» khoảng:\n" >+ >+#: resize/extent.c:197 >+#, c-format >+msgid "#\tNum=%d, Size=%d, Cursor=%d, Sorted=%d\n" >+msgstr "#\tSá»=%d, Cỡ=%d, Con trá»=%d, Sắp xếp=%d\n" >+ >+#: resize/extent.c:200 >+#, c-format >+msgid "#\t\t %u -> %u (%d)\n" >+msgstr "#\t\t %u -> %u (%d)\n" >+ >+#: resize/main.c:39 >+#, c-format >+msgid "" >+"Usage: %s [-d debug_flags] [-f] [-F] [-p] device [new_size]\n" >+"\n" >+msgstr "" >+"Cách sá» dụng: %s [-d cá»_gỡ_lá»i] [-f] [-F] [-p] thiết_bá» [kÃch_cỡ_má»i]\n" >+"\n" >+ >+#: resize/main.c:61 >+msgid "Extending the inode table" >+msgstr "Äang má» rá»ng bảng nút inode" >+ >+#: resize/main.c:64 >+msgid "Relocating blocks" >+msgstr "Äang Äá»nh vá» lại các khá»i" >+ >+#: resize/main.c:67 >+msgid "Scanning inode table" >+msgstr "Äang quét bảng nút inode" >+ >+#: resize/main.c:70 >+msgid "Updating inode references" >+msgstr "Äang cáºp nháºt các tham chiếu nút inode" >+ >+#: resize/main.c:73 >+msgid "Moving inode table" >+msgstr "Äang di chuyá»n bảng nút inode" >+ >+#: resize/main.c:76 >+msgid "Unknown pass?!?" >+msgstr "Lần qua không rõ ?!?" >+ >+#: resize/main.c:79 >+#, c-format >+msgid "Begin pass %d (max = %lu)\n" >+msgstr "Chạy lần qua %d (tá»i Äa = %lu)\n" >+ >+#: resize/main.c:200 >+#, c-format >+msgid "while opening %s" >+msgstr "trong khi má» %s" >+ >+#: resize/main.c:212 >+#, c-format >+msgid "while getting stat information for %s" >+msgstr "trong khi lấy các thông tin vá» %s" >+ >+#: resize/main.c:286 >+#, c-format >+msgid "bad filesystem size - %s" >+msgstr "kÃch cỡ há» thá»ng táºp tin sai â %s" >+ >+#: resize/main.c:313 >+#, c-format >+msgid "" >+"The containing partition (or device) is only %u (%dk) blocks.\n" >+"You requested a new size of %u blocks.\n" >+"\n" >+msgstr "" >+"Phân vùng (hay thiết bá») chứa là chá» %u (%dk) khá»i thôi.\n" >+"Bạn Äã yêu cầu kÃch cỡ má»i là %u khá»i.\n" >+"\n" >+ >+#: resize/main.c:320 >+#, c-format >+msgid "" >+"The filesystem is already %u blocks long. Nothing to do!\n" >+"\n" >+msgstr "" >+"Há» thá»ng táºp tin Äã có Äá» dà i %u khá»i. Không có gì cần là m !\n" >+"\n" >+ >+#: resize/main.c:331 >+#, c-format >+msgid "" >+"Please run 'e2fsck -f %s' first.\n" >+"\n" >+msgstr "Hãy chạy tiến trình « e2fsck -f %s » trÆ°á»c Äó.\n" >+ >+#: resize/main.c:342 >+#, c-format >+msgid "while trying to resize %s" >+msgstr "trong khi cá» gắng thay Äá»i kÃch cỡ %s" >+ >+#: resize/main.c:347 >+#, c-format >+msgid "" >+"The filesystem on %s is now %u blocks long.\n" >+"\n" >+msgstr "" >+"Há» thá»ng táºp tin nằm trên %s bây giá» có Äá» dà i %u khá»i.\n" >+"\n" >+ >+#: resize/resize2fs.c:638 >+msgid "reserved blocks" >+msgstr "khá»i dà nh riêng" >+ >+#: resize/resize2fs.c:643 >+msgid "blocks to be moved" >+msgstr "khá»i cần di chuyá»n" >+ >+#: resize/resize2fs.c:648 >+msgid "meta-data blocks" >+msgstr "khá»i siêu dữ liá»u" >+ >+#: resize/resize2fs.c:1528 >+#, c-format >+msgid "Should never happen: resize inode corrupt!\n" >+msgstr "Không bao giá» nên xảy ra: nút inode thay Äá»i kÃch cỡ bá» há»ng !\n" >Index: e2fsprogs-1.39/resize/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/resize/ChangeLog 2006-05-22 23:54:13.000000000 +0200 >+++ e2fsprogs-1.39/resize/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,35 @@ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * online.c (online_resize_fs): use div_ceil for r_frac calculation. >+ * resize2fs.c (adjust_fs_info): avoid overflow in blk calculation >+ when figuring new reserved blocks count. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * resize2fs.c (adjust_fs_info): Disallow > 2^32 indoes at resize time. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * online.c (online_resize_fs): Fix printf formats. >+ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * resize2fs.c (mark_table_blocks): Remove unused variable. >+ >+2006-08-30 Theodore Tso <tytso@mit.edu> >+ >+ * resize2fs.c (adjust_fs_info), online.c (online_resize_fs): Use >+ e2p_percent to properly calculate the number of reserved >+ blocks without worrying about overflow. >+ >+ * resize2fs.c (ext2fs_calculate_summary_stats): Fix potential >+ overflow problems when the number of blocks is close to >+ 2**31. >+ >+ * resize2fs.c (adjust_fs_info): Use ext2fs_div_ceil() instead of a >+ using an open-coded expression which was subject to >+ overflows. >+ > 2006-05-22 Theodore Tso <tytso@mit.edu> > > * resize2fs.8.in: Fixed spelling mistake (Addresses Debian Bug: >Index: e2fsprogs-1.39/resize/Makefile.pq >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/resize/Makefile.pq 2006-09-18 17:42:57.000000000 +0200 >@@ -0,0 +1,11 @@ >+TOPSRC=.. >+LIBNAME=RESIZE.LIB >+OBJFILE=RESIZE.LST >+ >+OBJS= extent.obj \ >+ ext2_block_move.obj \ >+ ext2_inode_move.obj \ >+ resize2fs.obj >+ >+!include $(TOPSRC)\powerquest\MCONFIG >+ >Index: e2fsprogs-1.39/resize/online.c >=================================================================== >--- e2fsprogs-1.39.orig/resize/online.c 2006-03-18 01:43:52.000000000 +0100 >+++ e2fsprogs-1.39/resize/online.c 2006-09-19 17:02:36.000000000 +0200 >@@ -59,8 +59,7 @@ errcode_t online_resize_fs(ext2_filsys f > exit(1); > } > >- r_frac = ((100 * sb->s_r_blocks_count) + sb->s_blocks_count-1) / >- sb->s_blocks_count; >+ r_frac = ext2fs_div_ceil(100 * sb->s_r_blocks_count, sb->s_blocks_count); > > retval = ext2fs_read_bitmaps(fs); > if (retval) >@@ -74,7 +73,7 @@ errcode_t online_resize_fs(ext2_filsys f > if (retval) > return retval; > >- printf(_("Performing an on-line resize of %s to %d (%dk) blocks.\n"), >+ printf(_("Performing an on-line resize of %s to %u (%dk) blocks.\n"), > fs->device_name, *new_size, fs->blocksize / 1024); > > size = fs->group_desc_count * sb->s_blocks_per_group + >@@ -107,7 +106,8 @@ errcode_t online_resize_fs(ext2_filsys f > sb->s_first_data_block - > (i * sb->s_blocks_per_group); > } >- input.reserved_blocks = input.blocks_count * r_frac / 100; >+ input.reserved_blocks = e2p_percent(r_frac, >+ input.blocks_count); > > #if 0 > printf("new block bitmap is at 0x%04x\n", input.block_bitmap); >@@ -115,7 +115,7 @@ errcode_t online_resize_fs(ext2_filsys f > printf("new inode table is at 0x%04x-0x%04x\n", > input.inode_table, > input.inode_table + new_fs->inode_blocks_per_group-1); >- printf("new group has %d blocks\n", input.blocks_count); >+ printf("new group has %u blocks\n", input.blocks_count); > printf("new group will reserve %d blocks\n", > input.reserved_blocks); > printf("new group has %d free blocks\n", >Index: e2fsprogs-1.39/resize/resize2fs.c >=================================================================== >--- e2fsprogs-1.39.orig/resize/resize2fs.c 2006-03-19 03:34:00.000000000 +0100 >+++ e2fsprogs-1.39/resize/resize2fs.c 2006-09-19 17:05:57.000000000 +0200 >@@ -186,19 +186,18 @@ errcode_t adjust_fs_info(ext2_filsys fs, > unsigned long i, j, old_desc_blocks, max_group; > unsigned int meta_bg, meta_bg_size; > int has_super; >+ __u64 new_inodes; /* u64 to check for overflow */ > > fs->super->s_blocks_count = new_size; > > retry: >- fs->group_desc_count = (fs->super->s_blocks_count - >- fs->super->s_first_data_block + >- EXT2_BLOCKS_PER_GROUP(fs->super) - 1) >- / EXT2_BLOCKS_PER_GROUP(fs->super); >+ fs->group_desc_count = ext2fs_div_ceil(fs->super->s_blocks_count - >+ fs->super->s_first_data_block, >+ EXT2_BLOCKS_PER_GROUP(fs->super)); > if (fs->group_desc_count == 0) > return EXT2_ET_TOOSMALL; >- fs->desc_blocks = (fs->group_desc_count + >- EXT2_DESC_PER_BLOCK(fs->super) - 1) >- / EXT2_DESC_PER_BLOCK(fs->super); >+ fs->desc_blocks = ext2fs_div_ceil(fs->group_desc_count, >+ EXT2_DESC_PER_BLOCK(fs->super)); > > /* > * Overhead is the number of bookkeeping blocks per group. It >@@ -228,6 +227,12 @@ retry: > /* > * Adjust the number of inodes > */ >+ new_inodes =(__u64)fs->super->s_inodes_per_group * fs->group_desc_count; >+ if (new_inodes > ~0U) { >+ fprintf(stderr, _("inodes (%llu) must be less than %u"), >+ new_inodes, ~0U); >+ return EXT2_ET_TOO_MANY_INODES; >+ } > fs->super->s_inodes_count = fs->super->s_inodes_per_group * > fs->group_desc_count; > >@@ -245,10 +250,10 @@ retry: > /* > * Adjust the number of reserved blocks > */ >- blk = old_fs->super->s_r_blocks_count * 100 / >+ blk = (__u64)old_fs->super->s_r_blocks_count * 100 / > old_fs->super->s_blocks_count; >- fs->super->s_r_blocks_count = ((fs->super->s_blocks_count * blk) >- / 100); >+ fs->super->s_r_blocks_count = e2p_percent(blk, >+ fs->super->s_blocks_count); > > /* > * Adjust the bitmaps for size >@@ -538,14 +543,13 @@ errout: > static errcode_t mark_table_blocks(ext2_filsys fs, > ext2fs_block_bitmap bmap) > { >- blk_t block, b; >+ blk_t b; > unsigned int j; > dgrp_t i; > unsigned long meta_bg_size; > unsigned int old_desc_blocks; > > meta_bg_size = (fs->blocksize / sizeof (struct ext2_group_desc)); >- block = fs->super->s_first_data_block; > if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) > old_desc_blocks = fs->super->s_first_meta_bg; > else >@@ -573,7 +577,6 @@ static errcode_t mark_table_blocks(ext2_ > */ > ext2fs_mark_block_bitmap(bmap, > fs->group_desc[i].bg_inode_bitmap); >- block += fs->super->s_blocks_per_group; > } > return 0; > } >@@ -1584,7 +1587,9 @@ static errcode_t ext2fs_calculate_summar > total_free = 0; > count = 0; > group = 0; >- for (ino = 1; ino <= fs->super->s_inodes_count; ino++) { >+ >+ /* Protect loop from wrap-around if s_inodes_count maxed */ >+ for (ino = 1; ino <= fs->super->s_inodes_count && ino > 0; ino++) { > if (!ext2fs_fast_test_inode_bitmap(fs->inode_map, ino)) { > group_free++; > total_free++; >Index: e2fsprogs-1.39/tests/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/tests/ChangeLog 2006-05-29 05:28:05.000000000 +0200 >+++ e2fsprogs-1.39/tests/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,14 @@ >+2006-08-30 Eric Sandeen <esandeen@redhat.com> >+ >+ * m_raid_opt/expect.1: >+ Change expected values for last group due to correctly >+ calculated last block when using strides. >+ >+2006-08-06 Theodore Tso <tytso@mit.edu> >+ >+ * Makefile.in, test_config: If available, use unified diffs to >+ report test failures >+ > 2006-05-28 Theodore Tso <tytso@mit.edu> > > * test_config: Unset all locale-related environment variables >Index: e2fsprogs-1.39/tests/Makefile.in >=================================================================== >--- e2fsprogs-1.39.orig/tests/Makefile.in 2005-09-06 11:40:14.000000000 +0200 >+++ e2fsprogs-1.39/tests/Makefile.in 2006-09-18 17:42:57.000000000 +0200 >@@ -19,6 +19,7 @@ test_script: test_script.in Makefile > @HTREE_CMT@ @echo "HTREE=y" >> test_script > @echo 'EGREP="@EGREP@"' >> test_script > @echo "SRCDIR=@srcdir@" >> test_script >+ @echo "DIFF_OPTS=@UNI_DIFF_OPTS@" >> test_script > @cat $(srcdir)/test_script.in >> test_script > @chmod +x test_script > >Index: e2fsprogs-1.39/tests/f_resize_inode/script >=================================================================== >--- e2fsprogs-1.39.orig/tests/f_resize_inode/script 2005-09-06 11:40:15.000000000 +0200 >+++ e2fsprogs-1.39/tests/f_resize_inode/script 2006-09-18 17:42:57.000000000 +0200 >@@ -1,4 +1,4 @@ >-echo -n "e2fsck with resize_inode: " >+printf "e2fsck with resize_inode: " > FSCK_OPT=-yf > OUT=$test_name.log > if [ -f $test_dir/expect.gz ]; then >Index: e2fsprogs-1.39/tests/m_raid_opt/expect.1 >=================================================================== >--- e2fsprogs-1.39.orig/tests/m_raid_opt/expect.1 2006-05-24 19:00:12.000000000 +0200 >+++ e2fsprogs-1.39/tests/m_raid_opt/expect.1 2006-09-18 17:42:57.000000000 +0200 >@@ -944,8 +944,8 @@ Group 126: (Blocks 129025-130048) > Free inodes: 32257-32512 > Group 127: (Blocks 130049-131071) > Group descriptor at 130049 >- Block bitmap at 130744 (+695), Inode bitmap at 130745 (+696) >+ Block bitmap at 130743 (+694), Inode bitmap at 130744 (+695) > Inode table at 130050-130081 (+1) > 988 free blocks, 256 free inodes, 0 directories >- Free blocks: 130082-130743, 130746-131071 >+ Free blocks: 130082-130742, 130745-131071 > Free inodes: 32513-32768 >Index: e2fsprogs-1.39/tests/r_move_itable/script >=================================================================== >--- e2fsprogs-1.39.orig/tests/r_move_itable/script 2005-09-06 11:40:15.000000000 +0200 >+++ e2fsprogs-1.39/tests/r_move_itable/script 2006-09-18 17:42:57.000000000 +0200 >@@ -1,4 +1,4 @@ >-echo -n "resize2fs with resize_inode: " >+printf "resize2fs with resize_inode: " > > if test -x $RESIZE2FS_EXE; then > >Index: e2fsprogs-1.39/tests/r_resize_inode/script >=================================================================== >--- e2fsprogs-1.39.orig/tests/r_resize_inode/script 2005-09-06 11:40:15.000000000 +0200 >+++ e2fsprogs-1.39/tests/r_resize_inode/script 2006-09-18 17:42:57.000000000 +0200 >@@ -1,4 +1,4 @@ >-echo -n "resize2fs with resize_inode: " >+printf "resize2fs with resize_inode: " > > if test -x $RESIZE2FS_EXE; then > >Index: e2fsprogs-1.39/tests/run_e2fsck >=================================================================== >--- e2fsprogs-1.39.orig/tests/run_e2fsck 2005-09-06 11:40:15.000000000 +0200 >+++ e2fsprogs-1.39/tests/run_e2fsck 2006-09-18 17:42:57.000000000 +0200 >@@ -1,5 +1,5 @@ > if [ "$DESCRIPTION"x != x ]; then >- echo -n "$DESCRIPTION: " >+ printf "%s" "$DESCRIPTION: " > fi > if [ "$IMAGE"x = x ]; then > IMAGE=$test_dir/image.gz >Index: e2fsprogs-1.39/tests/test_config >=================================================================== >--- e2fsprogs-1.39.orig/tests/test_config 2006-05-29 05:08:44.000000000 +0200 >+++ e2fsprogs-1.39/tests/test_config 2006-09-18 17:42:57.000000000 +0200 >@@ -18,7 +18,6 @@ TEST_ICOUNT=../tests/progs/test_icount > LD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss > DYLD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss > TMPFILE=./test.img >-DIFF_OPTS=-c > export LD_LIBRARY_PATH > export DYLD_LIBRARY_PATH > TZ=GMT >Index: e2fsprogs-1.39/util/ChangeLog >=================================================================== >--- e2fsprogs-1.39.orig/util/ChangeLog 2005-11-09 23:24:25.000000000 +0100 >+++ e2fsprogs-1.39/util/ChangeLog 2006-09-18 17:42:57.000000000 +0200 >@@ -1,3 +1,8 @@ >+2006-08-05 Andreas Dilger <adilger@clusterfs.com> >+ >+ * subst.c (main): Create automatically-generated files be >+ read-only in order to remind developers not to end them. >+ > 2005-10-26 Theodore Ts'o <tytso@mit.edu> > > * Makefile.in: Use BUILD_CCFLAGS and BUILD_LDFLAGS instead of >Index: e2fsprogs-1.39/util/Makefile.pq >=================================================================== >--- /dev/null 1970-01-01 00:00:00.000000000 +0000 >+++ e2fsprogs-1.39/util/Makefile.pq 2006-09-18 17:42:57.000000000 +0200 >@@ -0,0 +1,10 @@ >+TOPSRC=.. >+ >+!include $(TOPSRC)\powerquest\MCONFIG >+ >+ALL:: libecho.exe >+ >+libecho.exe: libecho.c >+ >+clean:: >+ $(RM) libecho.exe >Index: e2fsprogs-1.39/util/subst.c >=================================================================== >--- e2fsprogs-1.39.orig/util/subst.c 2005-09-06 11:40:15.000000000 +0200 >+++ e2fsprogs-1.39/util/subst.c 2006-09-18 17:42:57.000000000 +0200 >@@ -367,6 +367,7 @@ int main(int argc, char **argv) > fclose(in); > fclose(out); > if (outfn) { >+ struct stat st; > if (compare_file(outfn, newfn)) { > if (verbose) > printf("No change, keeping %s.\n", outfn); >@@ -386,6 +387,9 @@ int main(int argc, char **argv) > printf("Creating or replacing %s.\n", outfn); > rename(newfn, outfn); > } >+ /* set read-only to alert user it is a generated file */ >+ if (stat(outfn, &st) == 0) >+ chmod(outfn, st.st_mode & ~0222); > } > return (0); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 156697
:
103083
|
103084
|
103085
|
103087
|
103088
|
103089
|
103090
|
103091
|
103092
|
103093
|
103094
|
103095
|
103096
|
103859